# 1 "" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 11 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 1 3 4 /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /** * @file assert.h * @brief Assertions. * * There's no include guard in this file because may usefully be * included multiple times, with and without NDEBUG defined. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* cdefs.h expanded by -frewrite-includes */ #include #else /* cdefs.h expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 1 3 4 /* $NetBSD: cdefs.h,v 1.58 2004/12/11 05:59:00 christos Exp $ */ /* * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Berkeley Software Design, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)cdefs.h 8.8 (Berkeley) 1/9/95 */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /** * `__BIONIC__` is always defined if you're building with bionic. See * https://android.googlesource.com/platform/bionic/+/main/docs/defines.md. */ #define __BIONIC__ 1 #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 46 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __BEGIN_DECLS extern "C" { #define __END_DECLS } #else # 49 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __BEGIN_DECLS #define __END_DECLS #endif # 52 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __strong_alias(alias, sym) \ __asm__(".global " #alias "\n" \ #alias " = " #sym); #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 58 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __BIONIC_CAST(_k,_t,_v) (_k<_t>(_v)) #else # 60 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __BIONIC_CAST(_k,_t,_v) ((_t) (_v)) #endif # 62 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __BIONIC_ALIGN(__value, __alignment) (((__value) + (__alignment)-1) & ~((__alignment)-1)) /* * The nullness constraints of this parameter or return value are * quite complex. This is used to highlight spots where developers * are encouraged to read relevant manuals or code to understand * the full picture of nullness for this pointer. */ #define __BIONIC_COMPLICATED_NULLNESS _Null_unspecified /* * The __CONCAT macro is used to concatenate parts of symbol names, e.g. * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. * The __CONCAT macro is a bit tricky -- make sure you don't put spaces * in between its arguments. __CONCAT can also concatenate double-quoted * strings produced by the __STRING macro, but this only works with ANSI C. */ #define __P(protos) protos /* full-blown ANSI C */ #define __CONCAT1(x,y) x ## y #define __CONCAT(x,y) __CONCAT1(x,y) #define ___CONCAT(x,y) __CONCAT(x,y) #define __STRING(x) #x #define ___STRING(x) __STRING(x) // C++ has `inline` as a keyword, as does C99, but ANSI C (aka C89 aka C90) // does not. Everything accepts the `__inline__` extension though. We could // just use that directly in our own code, but there's historical precedent // for `__inline` meaning it's still used in upstream BSD code (and potentially // downstream in vendor or app code). #define __inline __inline__ #define __always_inline __attribute__((__always_inline__)) #define __attribute_const__ __attribute__((__const__)) #define __attribute_pure__ __attribute__((__pure__)) #define __dead __attribute__((__noreturn__)) #define __noreturn __attribute__((__noreturn__)) #define __mallocfunc __attribute__((__malloc__)) #define __packed __attribute__((__packed__)) #define __returns_twice __attribute__((__returns_twice__)) #define __unused __attribute__((__unused__)) #define __used __attribute__((__used__)) #define __printflike(x, y) __attribute__((__format__(printf, x, y))) #define __scanflike(x, y) __attribute__((__format__(scanf, x, y))) #define __strftimelike(x) __attribute__((__format__(strftime, x, 0))) /* * GNU C version 2.96 added explicit branch prediction so that * the CPU back-end can hint the processor and also so that * code blocks can be reordered such that the predicted path * sees a more linear flow, thus improving cache behavior, etc. * * The following two macros provide us with a way to use this * compiler feature. Use __predict_true() if you expect the expression * to evaluate to true, and __predict_false() if you expect the * expression to evaluate to false. * * A few notes about usage: * * * Generally, __predict_false() error condition checks (unless * you have some _strong_ reason to do otherwise, in which case * document it), and/or __predict_true() `no-error' condition * checks, assuming you want to optimize for the no-error case. * * * Other than that, if you don't know the likelihood of a test * succeeding from empirical or other `hard' evidence, don't * make predictions. * * * These are meant to be used in places that are run `a lot'. * It is wasteful to make predictions in code that is run * seldomly (e.g. at subsystem initialization time) as the * basic block reordering that this affects can often generate * larger code. */ #define __predict_true(exp) __builtin_expect((exp) != 0, 1) #define __predict_false(exp) __builtin_expect((exp) != 0, 0) #define __wur __attribute__((__warn_unused_result__)) #define __errorattr(msg) __attribute__((__unavailable__(msg))) #define __warnattr(msg) __attribute__((__deprecated__(msg))) #define __warnattr_real(msg) __attribute__((__deprecated__(msg))) #define __enable_if(cond, msg) __attribute__((__enable_if__(cond, msg))) #define __clang_error_if(cond, msg) __attribute__((__diagnose_if__(cond, msg, "error"))) #define __clang_warning_if(cond, msg) __attribute__((__diagnose_if__(cond, msg, "warning"))) #if 0 /* disabled by -frewrite-includes */ #if defined(ANDROID_STRICT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 153 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /* * For things that are sketchy, but not necessarily an error. FIXME: Enable * this. */ # define __warnattr_strict(msg) /* __warnattr(msg) */ #else # 159 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __warnattr_strict(msg) #endif # 161 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /* * Some BSD source needs these macros. * Originally they embedded the rcs versions of each source file * in the generated binary. We strip strings during build anyway,. */ #define __IDSTRING(_prefix,_s) /* nothing */ #define __COPYRIGHT(_s) /* nothing */ #define __FBSDID(_s) /* nothing */ #define __RCSID(_s) /* nothing */ #define __SCCSID(_s) /* nothing */ /* * With bionic, you always get all C and POSIX API. * * If you want BSD and/or GNU extensions, _BSD_SOURCE and/or _GNU_SOURCE are * expected to be defined by callers before *any* standard header file is * included. * * In our header files we test against __USE_BSD and __USE_GNU. */ #if 0 /* disabled by -frewrite-includes */ #if defined(_GNU_SOURCE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 183 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __USE_BSD 1 # define __USE_GNU 1 #endif # 186 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(_BSD_SOURCE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 188 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __USE_BSD 1 #endif # 190 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /* * _FILE_OFFSET_BITS 64 support. * See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__LP64__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 196 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __USE_FILE_OFFSET64 1 /* * Note that __RENAME_IF_FILE_OFFSET64 is only valid if the off_t and off64_t * functions were both added at the same API level because if you use this, * you only have one declaration to attach __INTRODUCED_IN to. */ # define __RENAME_IF_FILE_OFFSET64(func) __RENAME(func) #else # 204 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __RENAME_IF_FILE_OFFSET64(func) #endif # 206 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /* glibc compatibility. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 209 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __WORDSIZE 64 #else # 211 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __WORDSIZE 32 #endif # 213 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /* * When _FORTIFY_SOURCE is defined, automatic bounds checking is * added to commonly used libc functions. If a buffer overrun is * detected, the program is safely aborted. * * https://android-developers.googleblog.com/2017/04/fortify-in-android.html */ #define __BIONIC_FORTIFY_UNKNOWN_SIZE ((size_t) -1) #if 0 /* disabled by -frewrite-includes */ #if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 225 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /* FORTIFY can interfere with pattern-matching of clang-tidy/the static analyzer. */ #if 0 /* disabled by -frewrite-includes */ # if !defined(__clang_analyzer__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 227 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __BIONIC_FORTIFY 1 /* ASAN has interceptors that FORTIFY's _chk functions can break. */ #if 0 /* disabled by -frewrite-includes */ # if __has_feature(address_sanitizer) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 230 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED 0 # else # 232 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED 1 # endif # 234 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # endif # 235 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #endif # 236 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 // As we move some FORTIFY checks to be always on, __bos needs to be // always available. #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_FORTIFY) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 240 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if _FORTIFY_SOURCE == 2 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 241 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __bos_level 1 # else # 243 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __bos_level 0 # endif # 245 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #else # 246 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __bos_level 0 #endif # 248 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __bosn(s, n) __builtin_object_size((s), (n)) #define __bos(s) __bosn((s), __bos_level) #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_FORTIFY) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 253 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __bos0(s) __bosn((s), 0) # define __pass_object_size_n(n) __attribute__((__pass_object_size__(n))) /* * FORTIFY'ed functions all have either enable_if or pass_object_size, which * makes taking their address impossible. Saying (&read)(foo, bar, baz); will * therefore call the unFORTIFYed version of read. */ # define __call_bypassing_fortify(fn) (&fn) /* * Because clang-FORTIFY uses overloads, we can't mark functions as `extern inline` without making * them available externally. FORTIFY'ed functions try to be as close to possible as 'invisible'; * having stack protectors detracts from that (b/182948263). */ # define __BIONIC_FORTIFY_INLINE static __inline __attribute__((__no_stack_protector__)) \ __always_inline __VERSIONER_FORTIFY_INLINE /* * We should use __BIONIC_FORTIFY_VARIADIC instead of __BIONIC_FORTIFY_INLINE * for variadic functions because compilers cannot inline them. * The __always_inline attribute is useless, misleading, and could trigger * clang compiler bug to incorrectly inline variadic functions. */ # define __BIONIC_FORTIFY_VARIADIC static __inline /* Error functions don't have bodies, so they can just be static. */ # define __BIONIC_ERROR_FUNCTION_VISIBILITY static __unused #else # 278 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /* Further increase sharing for some inline functions */ # define __pass_object_size_n(n) #endif # 281 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __pass_object_size __pass_object_size_n(__bos_level) #define __pass_object_size0 __pass_object_size_n(0) /* Intended for use in unevaluated contexts, e.g. diagnose_if conditions. */ #define __bos_unevaluated_lt(bos_val, val) \ ((bos_val) != __BIONIC_FORTIFY_UNKNOWN_SIZE && (bos_val) < (val)) #define __bos_unevaluated_le(bos_val, val) \ ((bos_val) != __BIONIC_FORTIFY_UNKNOWN_SIZE && (bos_val) <= (val)) /* Intended for use in evaluated contexts. */ #define __bos_dynamic_check_impl_and(bos_val, op, index, cond) \ ((bos_val) == __BIONIC_FORTIFY_UNKNOWN_SIZE || \ (__builtin_constant_p(index) && bos_val op index && (cond))) #define __bos_dynamic_check_impl(bos_val, op, index) \ __bos_dynamic_check_impl_and(bos_val, op, index, 1) #define __bos_trivially_ge(bos_val, index) __bos_dynamic_check_impl((bos_val), >=, (index)) #define __bos_trivially_gt(bos_val, index) __bos_dynamic_check_impl((bos_val), >, (index)) #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_FORTIFY) || defined(__BIONIC_DECLARE_FORTIFY_HELPERS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 303 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # define __BIONIC_INCLUDE_FORTIFY_HEADERS 1 #endif # 305 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __overloadable __attribute__((__overloadable__)) #define __diagnose_as_builtin(...) __attribute__((__diagnose_as_builtin__(__VA_ARGS__))) /* Used to tag non-static symbols that are private and never exposed by the shared library. */ #define __LIBC_HIDDEN__ __attribute__((__visibility__("hidden"))) /* * Used to tag symbols that should be hidden for 64-bit, * but visible to preserve binary compatibility for LP32. */ #ifdef __LP64__ #define __LIBC32_LEGACY_PUBLIC__ __attribute__((__visibility__("hidden"))) #else # 320 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #define __LIBC32_LEGACY_PUBLIC__ __attribute__((__visibility__("default"))) #endif # 322 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 /* Used to rename functions so that the compiler emits a call to 'x' rather than the function this was applied to. */ #define __RENAME(x) __asm__(#x) /* * Used when we need to check for overflow when multiplying x and y. This * should only be used where __builtin_umull_overflow can not work, because it makes * assumptions that __builtin_umull_overflow doesn't (x and y are positive, ...), * *and* doesn't make use of compiler intrinsics, so it's probably slower than * __builtin_umull_overflow. */ #define __unsafe_check_mul_overflow(x, y) ((__SIZE_TYPE__)-1 / (x) < (y)) #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* versioning.h expanded by -frewrite-includes */ #include #else /* versioning.h expanded by -frewrite-includes */ # 335 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 1 3 4 /* * Copyright (C) 2016 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. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 // The `annotate` attribute always pulls the annotated (inline) function into the object files, thus // we should only annotate headers when we are running versioner. #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_VERSIONER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 22 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #define __INTRODUCED_IN(api_level) __attribute__((__annotate__("introduced_in=" #api_level))) #define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __attribute__((__annotate__("introduced_in=" #api_level))) __VERSIONER_NO_GUARD #define __DEPRECATED_IN(api_level, ...) __attribute__((__annotate__("deprecated_in=" #api_level))) #define __REMOVED_IN(api_level, ...) __attribute__((__annotate__("obsoleted_in=" #api_level))) #define __INTRODUCED_IN_32(api_level) __attribute__((__annotate__("introduced_in_32=" #api_level))) #define __INTRODUCED_IN_64(api_level) __attribute__((__annotate__("introduced_in_64=" #api_level))) #define __VERSIONER_NO_GUARD __attribute__((__annotate__("versioner_no_guard"))) #define __VERSIONER_FORTIFY_INLINE __attribute__((__annotate__("versioner_fortify_inline"))) #else # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 // When headers are not processed by the versioner (i.e. compiled into object files), // the availability attributed is emitted instead. The clang compiler will make the symbol weak // when targeting old api_level and enforce the reference to the symbol to be guarded with // __builtin_available(android api_level, *). // The 'strict' flag is required for NDK clients where the use of "-Wunguarded-availability" cannot // be enforced. In the case, the absence of 'strict' makes it possible to call an unavailable API // without the __builtin_available check, which will cause a link error at runtime. // Android platform build system defines this macro along with -Wunguarded-availability // // The _NO_GUARD_FOR_NDK variants keep the __VERSIONER_NO_GUARD behavior working for the NDK. This // allows libc++ to refer to these functions in inlines without needing to guard them, needed since // libc++ doesn't currently guard these calls. There's no risk to the apps though because using // those APIs will still cause a link error. #if 0 /* disabled by -frewrite-includes */ #if defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #define __BIONIC_AVAILABILITY(__what, ...) __attribute__((__availability__(android,__what __VA_OPT__(,) __VA_ARGS__))) #define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN(api_level) #else # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #define __BIONIC_AVAILABILITY(__what, ...) __attribute__((__availability__(android,strict,__what __VA_OPT__(,) __VA_ARGS__))) #define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) #endif # 56 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level) #define __DEPRECATED_IN(api_level, ...) __BIONIC_AVAILABILITY(deprecated=api_level __VA_OPT__(,message=) __VA_ARGS__) #define __REMOVED_IN(api_level, ...) __BIONIC_AVAILABILITY(obsoleted=api_level __VA_OPT__(,message=) __VA_ARGS__) // The same availability attribute can't be annotated multiple times. Therefore, the macros are // defined for the configuration that it is valid for so that declarations like the below doesn't // cause inconsistent availability values which is an error with -Wavailability: // // void foo() __INTRODUCED_IN_32(30) __INTRODUCED_IN_64(31); // #if 0 /* disabled by -frewrite-includes */ #if !defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 68 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #define __INTRODUCED_IN_32(api_level) __BIONIC_AVAILABILITY(introduced=api_level) #define __INTRODUCED_IN_64(api_level) #else # 71 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #define __INTRODUCED_IN_32(api_level) #define __INTRODUCED_IN_64(api_level) __BIONIC_AVAILABILITY(introduced=api_level) #endif # 74 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #define __VERSIONER_NO_GUARD #define __VERSIONER_FORTIFY_INLINE #endif // defined(__BIONIC_VERSIONER) # 79 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 // Vendor modules do not follow SDK versioning. Ignore NDK guards for vendor modules. #if 0 /* disabled by -frewrite-includes */ #if defined(__ANDROID_VENDOR__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 82 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #undef __BIONIC_AVAILABILITY #define __BIONIC_AVAILABILITY(api_level, ...) #endif // defined(__ANDROID_VENDOR__) # 85 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/versioning.h" 3 4 #endif /* versioning.h expanded by -frewrite-includes */ # 336 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* api-level.h expanded by -frewrite-includes */ #include #else /* api-level.h expanded by -frewrite-includes */ # 336 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 /** * @defgroup apilevels API Levels * * Defines functions and constants for working with Android API levels. * @{ */ /** * @file android/api-level.h * @brief Functions and constants for dealing with multiple API levels. * * See * https://android.googlesource.com/platform/bionic/+/main/docs/defines.md. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 46 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 __BEGIN_DECLS /** * Magic version number for an Android OS build which has not yet turned * into an official release, for comparison against `__ANDROID_API__`. See * https://android.googlesource.com/platform/bionic/+/main/docs/defines.md. */ #define __ANDROID_API_FUTURE__ 10000 /* This #ifndef should never be true except when doxygen is generating docs. */ #ifndef __ANDROID_API__ /** * `__ANDROID_API__` is the [API * level](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) * this code is being built for. The resulting binaries are only guaranteed to * be compatible with devices which have an API level greater than or equal to * `__ANDROID_API__`. * * For NDK and APEX builds, this macro will always be defined. It is set * automatically by Clang using the version suffix that is a part of the target * name. For example, `__ANDROID_API__` will be 24 when Clang is given the * argument `-target aarch64-linux-android24`. * * For non-APEX OS code, this defaults to __ANDROID_API_FUTURE__. * * The value of `__ANDROID_API__` can be compared to the named constants in * ``. * * The interpretation of `__ANDROID_API__` is similar to the AndroidManifest.xml * `minSdkVersion`. In most cases `__ANDROID_API__` will be identical to * `minSdkVersion`, but as it is a build time constant it is possible for * library code to use a different value than the app it will be included in. * When libraries and applications build for different API levels, the * `minSdkVersion` of the application must be at least as high as the highest * API level used by any of its libraries which are loaded unconditionally. * * Note that in some cases the resulting binaries may load successfully on * devices with an older API level. That behavior should not be relied upon, * even if you are careful to avoid using new APIs, as the toolchain may make * use of new features by default. For example, additional FORTIFY features may * implicitly make use of new APIs, SysV hashes may be omitted in favor of GNU * hashes to improve library load times, or relocation packing may be enabled to * reduce binary size. * * See android_get_device_api_level(), * android_get_application_target_sdk_version() and * https://android.googlesource.com/platform/bionic/+/main/docs/defines.md. */ #define __ANDROID_API__ __ANDROID_API_FUTURE__ #endif # 98 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 /** Names the Gingerbread API level (9), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_G__ 9 /** Names the Ice-Cream Sandwich API level (14), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_I__ 14 /** Names the Jellybean API level (16), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_J__ 16 /** Names the Jellybean MR1 API level (17), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_J_MR1__ 17 /** Names the Jellybean MR2 API level (18), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_J_MR2__ 18 /** Names the KitKat API level (19), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_K__ 19 /** Names the Lollipop API level (21), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_L__ 21 /** Names the Lollipop MR1 API level (22), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_L_MR1__ 22 /** Names the Marshmallow API level (23), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_M__ 23 /** Names the Nougat API level (24), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_N__ 24 /** Names the Nougat MR1 API level (25), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_N_MR1__ 25 /** Names the Oreo API level (26), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_O__ 26 /** Names the Oreo MR1 API level (27), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_O_MR1__ 27 /** Names the Pie API level (28), for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_P__ 28 /** * Names the Android 10 (aka "Q" or "Quince Tart") API level (29), for * comparison against `__ANDROID_API__`. */ #define __ANDROID_API_Q__ 29 /** * Names the Android 11 (aka "R" or "Red Velvet Cake") API level (30), for * comparison against `__ANDROID_API__`. */ #define __ANDROID_API_R__ 30 /** * Names the Android 12 (aka "S" or "Snowcone") API level (31), for * comparison against `__ANDROID_API__`. */ #define __ANDROID_API_S__ 31 /** * Names the Android 13 (aka "T" or "Tiramisu") API level (33), for * comparison against `__ANDROID_API__`. */ #define __ANDROID_API_T__ 33 /** * Names the Android 14 (aka "U" or "UpsideDownCake") API level (34), * for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_U__ 34 /** * Names the Android 15 (aka "V" or "VanillaIceCream") API level (35), * for comparison against `__ANDROID_API__`. */ #define __ANDROID_API_V__ 35 /* This file is included in , and might be used from .S files. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__ASSEMBLY__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 179 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 /** * Returns the `targetSdkVersion` of the caller, or `__ANDROID_API_FUTURE__` if * there is no known target SDK version (for code not running in the context of * an app). * * The returned values correspond to the named constants in ``, * and is equivalent to the AndroidManifest.xml `targetSdkVersion`. * * See also android_get_device_api_level(). * * Available since API level 24. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 194 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 int android_get_application_target_sdk_version() __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 196 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ < 29 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 199 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 /* android_get_device_api_level is a static inline before API level 29. */ #define __BIONIC_GET_DEVICE_API_LEVEL_INLINE static __inline #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* get_device_api_level_inlines.h expanded by -frewrite-includes */ #include #else /* get_device_api_level_inlines.h expanded by -frewrite-includes */ # 202 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/get_device_api_level_inlines.h" 1 3 4 /* * Copyright (C) 2018 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/get_device_api_level_inlines.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_GET_DEVICE_API_LEVEL_INLINE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/get_device_api_level_inlines.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/get_device_api_level_inlines.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/get_device_api_level_inlines.h" 3 4 __BEGIN_DECLS // Avoid circular dependencies since this is exposed from . int __system_property_get(const char* _Nonnull __name, char* _Nonnull __value); int atoi(const char* _Nonnull __s) __attribute_pure__; __BIONIC_GET_DEVICE_API_LEVEL_INLINE int android_get_device_api_level() { char value[92] = { 0 }; if (__system_property_get("ro.build.version.sdk", value) < 1) return -1; int api_level = atoi(value); return (api_level > 0) ? api_level : -1; } __END_DECLS #endif // __BIONIC_GET_DEVICE_API_LEVEL_INLINE # 51 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/get_device_api_level_inlines.h" 3 4 #endif /* get_device_api_level_inlines.h expanded by -frewrite-includes */ # 203 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 2 3 4 #undef __BIONIC_GET_DEVICE_API_LEVEL_INLINE #else # 206 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 /** * Returns the API level of the device we're actually running on, or -1 on failure. * The returned values correspond to the named constants in ``, * and is equivalent to the Java `Build.VERSION.SDK_INT` API. * * See also android_get_application_target_sdk_version(). */ int android_get_device_api_level() __INTRODUCED_IN(29); #endif # 217 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 #endif /* defined(__ASSEMBLY__) */ # 219 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/api-level.h" 3 4 __END_DECLS /** @} */ #endif /* api-level.h expanded by -frewrite-includes */ # 337 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if __has_include() #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 338 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* ndk-version.h expanded by -frewrite-includes */ #include #else /* ndk-version.h expanded by -frewrite-includes */ # 338 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/ndk-version.h" 1 3 4 #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 2 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/ndk-version.h" 3 4 /** * Set to 1 if this is an NDK, unset otherwise. See * https://android.googlesource.com/platform/bionic/+/master/docs/defines.md. */ #define __ANDROID_NDK__ 1 /** * Major version of this NDK. * * For example: 16 for r16. */ #define __NDK_MAJOR__ 27 /** * Minor version of this NDK. * * For example: 0 for r16 and 1 for r16b. */ #define __NDK_MINOR__ 0 /** * Set to 0 if this is a release build, or 1 for beta 1, * 2 for beta 2, and so on. */ #define __NDK_BETA__ 0 /** * Build number for this NDK. * * For a local development build of the NDK, this is 0. */ #define __NDK_BUILD__ 12077973 /** * Set to 1 if this is a canary build, 0 if not. */ #define __NDK_CANARY__ 0 #endif /* ndk-version.h expanded by -frewrite-includes */ # 339 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 2 3 4 #endif # 340 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/cdefs.h" 3 4 #endif /* cdefs.h expanded by -frewrite-includes */ # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 2 3 4 #undef assert #undef __assert_no_op /** Internal implementation detail. Do not use. */ #define __assert_no_op __BIONIC_CAST(static_cast, void, 0) #ifdef NDEBUG # define assert(e) __assert_no_op #else # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined(__cplusplus) || __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e)) # else # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /** * assert() aborts the program after logging an error message, if the * expression evaluates to false. * * On Android, the error goes to both stderr and logcat. */ # define assert(e) ((e) ? __assert_no_op : __assert(__FILE__, __LINE__, #e)) # endif # 65 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #endif # 66 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /* `static_assert` is a keyword in C++11 and C23; C11 had `_Static_assert` instead. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) && (__STDC_VERSION__ >= 201112L && __STDC_VERSION__ < 202311L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 72 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 __BEGIN_DECLS /** * __assert() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert(const char* _Nonnull __file, int __line, const char* _Nonnull __msg) __noreturn; /** * __assert2() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert2(const char* _Nonnull __file, int __line, const char* _Nonnull __function, const char* _Nonnull __msg) __noreturn; __END_DECLS #endif /* assert.h expanded by -frewrite-includes */ # 12 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdio.h expanded by -frewrite-includes */ #include #else /* stdio.h expanded by -frewrite-includes */ # 12 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 1 3 4 /* $OpenBSD: stdio.h,v 1.35 2006/01/13 18:10:09 miod Exp $ */ /* $NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. * All rights reserved. * * This code is derived from software contributed to Berkeley by * Chris Torek. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)stdio.h 5.17 (Berkeley) 6/3/91 */ #ifndef _STDIO_H_ #define _STDIO_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* types.h expanded by -frewrite-includes */ #include #else /* types.h expanded by -frewrite-includes */ # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _SYS_TYPES_H_ #define _SYS_TYPES_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_header_macro.h expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #else /* __stddef_header_macro.h expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_header_macro.h" 1 3 4 /*===---- __stddef_header_macro.h ------------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __STDDEF_H #define __STDDEF_H #endif # 13 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_header_macro.h" 3 4 #endif /* __stddef_header_macro.h expanded by -frewrite-includes */ # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 4 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_null.h expanded by -frewrite-includes */ #include <__stddef_null.h> #else /* __stddef_null.h expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_null.h" 1 3 4 /*===---- __stddef_null.h - Definition of NULL -----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(NULL) || !__building_module(_Builtin_stddef) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_null.h" 3 4 /* linux/stddef.h will define NULL to 0. glibc (and other) headers then define * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. * Modules don't support redefining macros like that, but support that pattern * in the non-modules case. */ #undef NULL #ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ #if !defined(__MINGW32__) && !defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL __null #else # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL 0 #endif # 25 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_null.h" 3 4 #else # 26 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL ((void*)0) #endif # 28 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_null.h" 3 4 #endif # 30 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_null.h" 3 4 #endif /* __stddef_null.h expanded by -frewrite-includes */ # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_max_align_t.h expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #else /* __stddef_max_align_t.h expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_max_align_t.h" 1 3 4 /*===---- __stddef_max_align_t.h - Definition of max_align_t ---------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __CLANG_MAX_ALIGN_T_DEFINED #define __CLANG_MAX_ALIGN_T_DEFINED #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_max_align_t.h" 3 4 typedef double max_align_t; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__APPLE__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_max_align_t.h" 3 4 typedef long double max_align_t; #else # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_max_align_t.h" 3 4 // Define 'max_align_t' to match the GCC definition. typedef struct { long long __clang_max_align_nonce1 __attribute__((__aligned__(__alignof__(long long)))); long double __clang_max_align_nonce2 __attribute__((__aligned__(__alignof__(long double)))); } max_align_t; #endif # 26 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_max_align_t.h" 3 4 #endif # 28 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_max_align_t.h" 3 4 #endif /* __stddef_max_align_t.h expanded by -frewrite-includes */ # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 4 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdint.h expanded by -frewrite-includes */ #include #else /* stdint.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 1 3 4 /*===---- stdint.h - Standard header for sized integer types --------------===*\ * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * \*===----------------------------------------------------------------------===*/ #ifndef __CLANG_STDINT_H // AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T // is defined until an inclusion of it without _STD_TYPES_T occurs, in which // case the header guard macro is defined. #if 0 /* disabled by -frewrite-includes */ #if !defined(_AIX) || !defined(_STD_TYPES_T) || !defined(__STDC_HOSTED__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #define __CLANG_STDINT_H #endif # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # 19 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #else # 20 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* If we're hosted, fall back to the system's stdint.h, which might have * additional definitions. */ #if 0 /* disabled by -frewrite-includes */ #if __STDC_HOSTED__ && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 25 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 // C99 7.18.3 Limits of other integer types // // Footnote 219, 220: C++ implementations should define these macros only when // __STDC_LIMIT_MACROS is defined before is included. // // Footnote 222: C++ implementations should define these macros only when // __STDC_CONSTANT_MACROS is defined before is included. // // C++11 [cstdint.syn]p2: // // The macros defined by are provided unconditionally. In particular, // the symbols __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS (mentioned in // footnotes 219, 220, and 222 in the C standard) play no role in C++. // // C11 removed the problematic footnotes. // // Work around this inconsistency by always defining those macros in C++ mode, // so that a C library implementation which follows the C99 standard can be // used in C++. # ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ # if !defined(__STDC_LIMIT_MACROS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 47 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS_DEFINED_BY_CLANG # endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined(__STDC_CONSTANT_MACROS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 51 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG # endif # 54 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # endif # 55 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdint.h expanded by -frewrite-includes */ # include_next #else /* stdint.h expanded by -frewrite-includes */ # 56 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _STDINT_H #define _STDINT_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wchar_limits.h expanded by -frewrite-includes */ #include #else /* wchar_limits.h expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wchar_limits.h" 1 3 4 /* * Copyright (C) 2014 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wchar_limits.h" 3 4 /** * @file bits/wchar_limits.h * @brief `wchar_t` limits. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wchar_limits.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wchar_limits.h" 3 4 /** The maximum value of a `wchar_t`. */ #define WCHAR_MAX __WCHAR_MAX__ /* As of 3.4, clang still doesn't define __WCHAR_MIN__. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__WCHAR_UNSIGNED__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wchar_limits.h" 3 4 /** The minimum value of a `wchar_t`. */ # define WCHAR_MIN L'\0' #else # 46 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wchar_limits.h" 3 4 /** The minimum value of a `wchar_t`. */ # define WCHAR_MIN (-(WCHAR_MAX) - 1) #endif # 49 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wchar_limits.h" 3 4 #endif /* wchar_limits.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 4 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 4 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef short __int16_t; typedef unsigned short __uint16_t; typedef int __int32_t; typedef unsigned int __uint32_t; #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef long __int64_t; typedef unsigned long __uint64_t; #else # 46 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef long long __int64_t; typedef unsigned long long __uint64_t; #endif # 49 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 51 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef long __intptr_t; typedef unsigned long __uintptr_t; #else # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef int __intptr_t; typedef unsigned int __uintptr_t; #endif # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef __int8_t int8_t; typedef __uint8_t uint8_t; typedef __int16_t int16_t; typedef __uint16_t uint16_t; typedef __int32_t int32_t; typedef __uint32_t uint32_t; typedef __int64_t int64_t; typedef __uint64_t uint64_t; typedef __intptr_t intptr_t; typedef __uintptr_t uintptr_t; typedef int8_t int_least8_t; typedef uint8_t uint_least8_t; typedef int16_t int_least16_t; typedef uint16_t uint_least16_t; typedef int32_t int_least32_t; typedef uint32_t uint_least32_t; typedef int64_t int_least64_t; typedef uint64_t uint_least64_t; typedef int8_t int_fast8_t; typedef uint8_t uint_fast8_t; typedef int64_t int_fast64_t; typedef uint64_t uint_fast64_t; #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 92 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef int64_t int_fast16_t; typedef uint64_t uint_fast16_t; typedef int64_t int_fast32_t; typedef uint64_t uint_fast32_t; #else # 97 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef int32_t int_fast16_t; typedef uint32_t uint_fast16_t; typedef int32_t int_fast32_t; typedef uint32_t uint_fast32_t; #endif # 102 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 typedef uint64_t uintmax_t; typedef int64_t intmax_t; /* Keep the kernel from trying to define these types... */ #define __BIT_TYPES_DEFINED__ #define INT8_C(c) c #define INT_LEAST8_C(c) INT8_C(c) #define INT_FAST8_C(c) INT8_C(c) #define UINT8_C(c) c #define UINT_LEAST8_C(c) UINT8_C(c) #define UINT_FAST8_C(c) UINT8_C(c) #define INT16_C(c) c #define INT_LEAST16_C(c) INT16_C(c) #define INT_FAST16_C(c) INT32_C(c) #define UINT16_C(c) c #define UINT_LEAST16_C(c) UINT16_C(c) #define UINT_FAST16_C(c) UINT32_C(c) #define INT32_C(c) c #define INT_LEAST32_C(c) INT32_C(c) #define INT_FAST32_C(c) INT32_C(c) #define UINT32_C(c) c ## U #define UINT_LEAST32_C(c) UINT32_C(c) #define UINT_FAST32_C(c) UINT32_C(c) #define INT_LEAST64_C(c) INT64_C(c) #define INT_FAST64_C(c) INT64_C(c) #define UINT_LEAST64_C(c) UINT64_C(c) #define UINT_FAST64_C(c) UINT64_C(c) #define INTMAX_C(c) INT64_C(c) #define UINTMAX_C(c) UINT64_C(c) #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 141 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # define INT64_C(c) c ## L # define UINT64_C(c) c ## UL # define INTPTR_C(c) INT64_C(c) # define UINTPTR_C(c) UINT64_C(c) # define PTRDIFF_C(c) INT64_C(c) #else # 147 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # define INT64_C(c) c ## LL # define UINT64_C(c) c ## ULL # define INTPTR_C(c) INT32_C(c) # define UINTPTR_C(c) UINT32_C(c) # define PTRDIFF_C(c) INT32_C(c) #endif # 153 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 #define INT8_MIN (-128) #define INT8_MAX (127) #define INT_LEAST8_MIN INT8_MIN #define INT_LEAST8_MAX INT8_MAX #define INT_FAST8_MIN INT8_MIN #define INT_FAST8_MAX INT8_MAX #define UINT8_MAX (255) #define UINT_LEAST8_MAX UINT8_MAX #define UINT_FAST8_MAX UINT8_MAX #define INT16_MIN (-32768) #define INT16_MAX (32767) #define INT_LEAST16_MIN INT16_MIN #define INT_LEAST16_MAX INT16_MAX #define INT_FAST16_MIN INT32_MIN #define INT_FAST16_MAX INT32_MAX #define UINT16_MAX (65535) #define UINT_LEAST16_MAX UINT16_MAX #define UINT_FAST16_MAX UINT32_MAX #define INT32_MIN (-2147483647-1) #define INT32_MAX (2147483647) #define INT_LEAST32_MIN INT32_MIN #define INT_LEAST32_MAX INT32_MAX #define INT_FAST32_MIN INT32_MIN #define INT_FAST32_MAX INT32_MAX #define UINT32_MAX (4294967295U) #define UINT_LEAST32_MAX UINT32_MAX #define UINT_FAST32_MAX UINT32_MAX #define INT64_MIN (INT64_C(-9223372036854775807)-1) #define INT64_MAX (INT64_C(9223372036854775807)) #define INT_LEAST64_MIN INT64_MIN #define INT_LEAST64_MAX INT64_MAX #define INT_FAST64_MIN INT64_MIN #define INT_FAST64_MAX INT64_MAX #define UINT64_MAX (UINT64_C(18446744073709551615)) #define UINT_LEAST64_MAX UINT64_MAX #define UINT_FAST64_MAX UINT64_MAX #define INTMAX_MIN INT64_MIN #define INTMAX_MAX INT64_MAX #define UINTMAX_MAX UINT64_MAX #define SIG_ATOMIC_MAX INT32_MAX #define SIG_ATOMIC_MIN INT32_MIN #if 0 /* disabled by -frewrite-includes */ #if defined(__WINT_UNSIGNED__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 206 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # define WINT_MAX UINT32_MAX # define WINT_MIN 0 #else # 209 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # define WINT_MAX INT32_MAX # define WINT_MIN INT32_MIN #endif # 212 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 214 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # define INTPTR_MIN INT64_MIN # define INTPTR_MAX INT64_MAX # define UINTPTR_MAX UINT64_MAX # define PTRDIFF_MIN INT64_MIN # define PTRDIFF_MAX INT64_MAX # define SIZE_MAX UINT64_MAX #else # 221 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 # define INTPTR_MIN INT32_MIN # define INTPTR_MAX INT32_MAX # define UINTPTR_MAX UINT32_MAX # define PTRDIFF_MIN INT32_MIN # define PTRDIFF_MAX INT32_MAX # define SIZE_MAX UINT32_MAX #endif # 228 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 #endif /* _STDINT_H */ # 230 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdint.h" 3 4 #endif /* stdint.h expanded by -frewrite-includes */ # 57 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 2 3 4 # ifdef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG # undef __STDC_LIMIT_MACROS # undef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG # endif # 62 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # ifdef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG # undef __STDC_CONSTANT_MACROS # undef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG # endif # 66 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #else # 68 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* C99 7.18.1.1 Exact-width integer types. * C99 7.18.1.2 Minimum-width integer types. * C99 7.18.1.3 Fastest minimum-width integer types. * * The standard requires that exact-width type be defined for 8-, 16-, 32-, and * 64-bit types if they are implemented. Other exact width types are optional. * This implementation defines an exact-width types for every integer width * that is represented in the standard integer types. * * The standard also requires minimum-width types be defined for 8-, 16-, 32-, * and 64-bit widths regardless of whether there are corresponding exact-width * types. * * To accommodate targets that are missing types that are exactly 8, 16, 32, or * 64 bits wide, this implementation takes an approach of cascading * redefinitions, redefining __int_leastN_t to successively smaller exact-width * types. It is therefore important that the types are defined in order of * descending widths. * * We currently assume that the minimum-width types and the fastest * minimum-width types are the same. This is allowed by the standard, but is * suboptimal. * * In violation of the standard, some targets do not implement a type that is * wide enough to represent all of the required widths (8-, 16-, 32-, 64-bit). * To accommodate these targets, a required minimum-width type is only * defined if there exists an exact-width type of equal or greater width. */ #ifdef __INT64_TYPE__ # ifndef __int8_t_defined /* glibc sys/types.h also defines int64_t*/ typedef __INT64_TYPE__ int64_t; # endif /* __int8_t_defined */ # 102 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 typedef __UINT64_TYPE__ uint64_t; # undef __int_least64_t # define __int_least64_t int64_t # undef __uint_least64_t # define __uint_least64_t uint64_t # undef __int_least32_t # define __int_least32_t int64_t # undef __uint_least32_t # define __uint_least32_t uint64_t # undef __int_least16_t # define __int_least16_t int64_t # undef __uint_least16_t # define __uint_least16_t uint64_t # undef __int_least8_t # define __int_least8_t int64_t # undef __uint_least8_t # define __uint_least8_t uint64_t #endif /* __INT64_TYPE__ */ # 120 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __int_least64_t typedef __int_least64_t int_least64_t; typedef __uint_least64_t uint_least64_t; typedef __int_least64_t int_fast64_t; typedef __uint_least64_t uint_fast64_t; #endif /* __int_least64_t */ # 127 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT56_TYPE__ typedef __INT56_TYPE__ int56_t; typedef __UINT56_TYPE__ uint56_t; typedef int56_t int_least56_t; typedef uint56_t uint_least56_t; typedef int56_t int_fast56_t; typedef uint56_t uint_fast56_t; # undef __int_least32_t # define __int_least32_t int56_t # undef __uint_least32_t # define __uint_least32_t uint56_t # undef __int_least16_t # define __int_least16_t int56_t # undef __uint_least16_t # define __uint_least16_t uint56_t # undef __int_least8_t # define __int_least8_t int56_t # undef __uint_least8_t # define __uint_least8_t uint56_t #endif /* __INT56_TYPE__ */ # 148 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT48_TYPE__ typedef __INT48_TYPE__ int48_t; typedef __UINT48_TYPE__ uint48_t; typedef int48_t int_least48_t; typedef uint48_t uint_least48_t; typedef int48_t int_fast48_t; typedef uint48_t uint_fast48_t; # undef __int_least32_t # define __int_least32_t int48_t # undef __uint_least32_t # define __uint_least32_t uint48_t # undef __int_least16_t # define __int_least16_t int48_t # undef __uint_least16_t # define __uint_least16_t uint48_t # undef __int_least8_t # define __int_least8_t int48_t # undef __uint_least8_t # define __uint_least8_t uint48_t #endif /* __INT48_TYPE__ */ # 170 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT40_TYPE__ typedef __INT40_TYPE__ int40_t; typedef __UINT40_TYPE__ uint40_t; typedef int40_t int_least40_t; typedef uint40_t uint_least40_t; typedef int40_t int_fast40_t; typedef uint40_t uint_fast40_t; # undef __int_least32_t # define __int_least32_t int40_t # undef __uint_least32_t # define __uint_least32_t uint40_t # undef __int_least16_t # define __int_least16_t int40_t # undef __uint_least16_t # define __uint_least16_t uint40_t # undef __int_least8_t # define __int_least8_t int40_t # undef __uint_least8_t # define __uint_least8_t uint40_t #endif /* __INT40_TYPE__ */ # 192 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT32_TYPE__ # ifndef __int8_t_defined /* glibc sys/types.h also defines int32_t*/ typedef __INT32_TYPE__ int32_t; # endif /* __int8_t_defined */ # 199 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # ifndef __uint32_t_defined /* more glibc compatibility */ # define __uint32_t_defined typedef __UINT32_TYPE__ uint32_t; # endif /* __uint32_t_defined */ # 204 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # undef __int_least32_t # define __int_least32_t int32_t # undef __uint_least32_t # define __uint_least32_t uint32_t # undef __int_least16_t # define __int_least16_t int32_t # undef __uint_least16_t # define __uint_least16_t uint32_t # undef __int_least8_t # define __int_least8_t int32_t # undef __uint_least8_t # define __uint_least8_t uint32_t #endif /* __INT32_TYPE__ */ # 218 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __int_least32_t typedef __int_least32_t int_least32_t; typedef __uint_least32_t uint_least32_t; typedef __int_least32_t int_fast32_t; typedef __uint_least32_t uint_fast32_t; #endif /* __int_least32_t */ # 225 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT24_TYPE__ typedef __INT24_TYPE__ int24_t; typedef __UINT24_TYPE__ uint24_t; typedef int24_t int_least24_t; typedef uint24_t uint_least24_t; typedef int24_t int_fast24_t; typedef uint24_t uint_fast24_t; # undef __int_least16_t # define __int_least16_t int24_t # undef __uint_least16_t # define __uint_least16_t uint24_t # undef __int_least8_t # define __int_least8_t int24_t # undef __uint_least8_t # define __uint_least8_t uint24_t #endif /* __INT24_TYPE__ */ # 242 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT16_TYPE__ #ifndef __int8_t_defined /* glibc sys/types.h also defines int16_t*/ typedef __INT16_TYPE__ int16_t; #endif /* __int8_t_defined */ # 247 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 typedef __UINT16_TYPE__ uint16_t; # undef __int_least16_t # define __int_least16_t int16_t # undef __uint_least16_t # define __uint_least16_t uint16_t # undef __int_least8_t # define __int_least8_t int16_t # undef __uint_least8_t # define __uint_least8_t uint16_t #endif /* __INT16_TYPE__ */ # 257 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __int_least16_t typedef __int_least16_t int_least16_t; typedef __uint_least16_t uint_least16_t; typedef __int_least16_t int_fast16_t; typedef __uint_least16_t uint_fast16_t; #endif /* __int_least16_t */ # 264 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT8_TYPE__ #ifndef __int8_t_defined /* glibc sys/types.h also defines int8_t*/ typedef __INT8_TYPE__ int8_t; #endif /* __int8_t_defined */ # 270 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 typedef __UINT8_TYPE__ uint8_t; # undef __int_least8_t # define __int_least8_t int8_t # undef __uint_least8_t # define __uint_least8_t uint8_t #endif /* __INT8_TYPE__ */ # 276 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __int_least8_t typedef __int_least8_t int_least8_t; typedef __uint_least8_t uint_least8_t; typedef __int_least8_t int_fast8_t; typedef __uint_least8_t uint_fast8_t; #endif /* __int_least8_t */ # 283 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* prevent glibc sys/types.h from defining conflicting types */ #ifndef __int8_t_defined # define __int8_t_defined #endif /* __int8_t_defined */ # 288 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* C99 7.18.1.4 Integer types capable of holding object pointers. */ #define __stdint_join3(a,b,c) a ## b ## c #ifndef _INTPTR_T #ifndef __intptr_t_defined typedef __INTPTR_TYPE__ intptr_t; #define __intptr_t_defined #define _INTPTR_T #endif # 299 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif # 300 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifndef _UINTPTR_T typedef __UINTPTR_TYPE__ uintptr_t; #define _UINTPTR_T #endif # 305 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* C99 7.18.1.5 Greatest-width integer types. */ typedef __INTMAX_TYPE__ intmax_t; typedef __UINTMAX_TYPE__ uintmax_t; /* C99 7.18.4 Macros for minimum-width integer constants. * * The standard requires that integer constant macros be defined for all the * minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width * types are required, the corresponding integer constant macros are defined * here. This implementation also defines minimum-width types for every other * integer width that the target implements, so corresponding macros are * defined below, too. * * These macros are defined using the same successive-shrinking approach as * the type definitions above. It is likewise important that macros are defined * in order of decending width. * * Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). */ #define __int_c_join(a, b) a ## b #define __int_c(v, suffix) __int_c_join(v, suffix) #define __uint_c(v, suffix) __int_c_join(v##U, suffix) #ifdef __INT64_TYPE__ # undef __int64_c_suffix # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT64_C_SUFFIX__ # define __int64_c_suffix __INT64_C_SUFFIX__ # define __int32_c_suffix __INT64_C_SUFFIX__ # define __int16_c_suffix __INT64_C_SUFFIX__ # define __int8_c_suffix __INT64_C_SUFFIX__ # endif /* __INT64_C_SUFFIX__ */ # 344 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT64_TYPE__ */ # 345 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __int_least64_t # ifdef __int64_c_suffix # define INT64_C(v) __int_c(v, __int64_c_suffix) # define UINT64_C(v) __uint_c(v, __int64_c_suffix) # else # 351 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define INT64_C(v) v # define UINT64_C(v) v ## U # endif /* __int64_c_suffix */ # 354 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __int_least64_t */ # 355 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT56_TYPE__ # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT56_C_SUFFIX__ # define INT56_C(v) __int_c(v, __INT56_C_SUFFIX__) # define UINT56_C(v) __uint_c(v, __INT56_C_SUFFIX__) # define __int32_c_suffix __INT56_C_SUFFIX__ # define __int16_c_suffix __INT56_C_SUFFIX__ # define __int8_c_suffix __INT56_C_SUFFIX__ # else # 368 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define INT56_C(v) v # define UINT56_C(v) v ## U # endif /* __INT56_C_SUFFIX__ */ # 371 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT56_TYPE__ */ # 372 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT48_TYPE__ # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT48_C_SUFFIX__ # define INT48_C(v) __int_c(v, __INT48_C_SUFFIX__) # define UINT48_C(v) __uint_c(v, __INT48_C_SUFFIX__) # define __int32_c_suffix __INT48_C_SUFFIX__ # define __int16_c_suffix __INT48_C_SUFFIX__ # define __int8_c_suffix __INT48_C_SUFFIX__ # else # 385 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define INT48_C(v) v # define UINT48_C(v) v ## U # endif /* __INT48_C_SUFFIX__ */ # 388 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT48_TYPE__ */ # 389 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT40_TYPE__ # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT40_C_SUFFIX__ # define INT40_C(v) __int_c(v, __INT40_C_SUFFIX__) # define UINT40_C(v) __uint_c(v, __INT40_C_SUFFIX__) # define __int32_c_suffix __INT40_C_SUFFIX__ # define __int16_c_suffix __INT40_C_SUFFIX__ # define __int8_c_suffix __INT40_C_SUFFIX__ # else # 402 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define INT40_C(v) v # define UINT40_C(v) v ## U # endif /* __INT40_C_SUFFIX__ */ # 405 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT40_TYPE__ */ # 406 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT32_TYPE__ # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT32_C_SUFFIX__ # define __int32_c_suffix __INT32_C_SUFFIX__ # define __int16_c_suffix __INT32_C_SUFFIX__ # define __int8_c_suffix __INT32_C_SUFFIX__ # endif /* __INT32_C_SUFFIX__ */ # 417 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT32_TYPE__ */ # 418 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __int_least32_t # ifdef __int32_c_suffix # define INT32_C(v) __int_c(v, __int32_c_suffix) # define UINT32_C(v) __uint_c(v, __int32_c_suffix) # else # 424 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define INT32_C(v) v # define UINT32_C(v) v ## U # endif /* __int32_c_suffix */ # 427 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __int_least32_t */ # 428 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT24_TYPE__ # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT24_C_SUFFIX__ # define INT24_C(v) __int_c(v, __INT24_C_SUFFIX__) # define UINT24_C(v) __uint_c(v, __INT24_C_SUFFIX__) # define __int16_c_suffix __INT24_C_SUFFIX__ # define __int8_c_suffix __INT24_C_SUFFIX__ # else # 439 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define INT24_C(v) v # define UINT24_C(v) v ## U # endif /* __INT24_C_SUFFIX__ */ # 442 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT24_TYPE__ */ # 443 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT16_TYPE__ # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT16_C_SUFFIX__ # define __int16_c_suffix __INT16_C_SUFFIX__ # define __int8_c_suffix __INT16_C_SUFFIX__ # endif /* __INT16_C_SUFFIX__ */ # 452 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT16_TYPE__ */ # 453 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __int_least16_t # ifdef __int16_c_suffix # define INT16_C(v) __int_c(v, __int16_c_suffix) # define UINT16_C(v) __uint_c(v, __int16_c_suffix) # else # 459 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define INT16_C(v) v # define UINT16_C(v) v ## U # endif /* __int16_c_suffix */ # 462 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __int_least16_t */ # 463 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT8_TYPE__ # undef __int8_c_suffix # ifdef __INT8_C_SUFFIX__ # define __int8_c_suffix __INT8_C_SUFFIX__ # endif /* __INT8_C_SUFFIX__ */ # 470 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT8_TYPE__ */ # 471 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __int_least8_t # ifdef __int8_c_suffix # define INT8_C(v) __int_c(v, __int8_c_suffix) # define UINT8_C(v) __uint_c(v, __int8_c_suffix) # else # 477 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define INT8_C(v) v # define UINT8_C(v) v ## U # endif /* __int8_c_suffix */ # 480 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __int_least8_t */ # 481 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* C99 7.18.2.1 Limits of exact-width integer types. * C99 7.18.2.2 Limits of minimum-width integer types. * C99 7.18.2.3 Limits of fastest minimum-width integer types. * * The presence of limit macros are completely optional in C99. This * implementation defines limits for all of the types (exact- and * minimum-width) that it defines above, using the limits of the minimum-width * type for any types that do not have exact-width representations. * * As in the type definitions, this section takes an approach of * successive-shrinking to determine which limits to use for the standard (8, * 16, 32, 64) bit widths when they don't have exact representations. It is * therefore important that the definitions be kept in order of decending * widths. * * Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). */ #ifdef __INT64_TYPE__ # define INT64_MAX INT64_C( 9223372036854775807) # define INT64_MIN (-INT64_C( 9223372036854775807)-1) # define UINT64_MAX UINT64_C(18446744073709551615) #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 508 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT64_WIDTH 64 # define INT64_WIDTH UINT64_WIDTH # define __UINT_LEAST64_WIDTH UINT64_WIDTH # undef __UINT_LEAST32_WIDTH # define __UINT_LEAST32_WIDTH UINT64_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT64_WIDTH # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT64_MAX #endif /* __STDC_VERSION__ */ # 519 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define __INT_LEAST64_MIN INT64_MIN # define __INT_LEAST64_MAX INT64_MAX # define __UINT_LEAST64_MAX UINT64_MAX # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT64_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT64_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT64_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT64_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT64_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT64_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT64_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT64_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT64_MAX #endif /* __INT64_TYPE__ */ # 542 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT_LEAST64_MIN # define INT_LEAST64_MIN __INT_LEAST64_MIN # define INT_LEAST64_MAX __INT_LEAST64_MAX # define UINT_LEAST64_MAX __UINT_LEAST64_MAX # define INT_FAST64_MIN __INT_LEAST64_MIN # define INT_FAST64_MAX __INT_LEAST64_MAX # define UINT_FAST64_MAX __UINT_LEAST64_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 552 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT_LEAST64_WIDTH __UINT_LEAST64_WIDTH # define INT_LEAST64_WIDTH UINT_LEAST64_WIDTH # define UINT_FAST64_WIDTH __UINT_LEAST64_WIDTH # define INT_FAST64_WIDTH UINT_FAST64_WIDTH #endif /* __STDC_VERSION__ */ # 557 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT_LEAST64_MIN */ # 558 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT56_TYPE__ # define INT56_MAX INT56_C(36028797018963967) # define INT56_MIN (-INT56_C(36028797018963967)-1) # define UINT56_MAX UINT56_C(72057594037927935) # define INT_LEAST56_MIN INT56_MIN # define INT_LEAST56_MAX INT56_MAX # define UINT_LEAST56_MAX UINT56_MAX # define INT_FAST56_MIN INT56_MIN # define INT_FAST56_MAX INT56_MAX # define UINT_FAST56_MAX UINT56_MAX # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT56_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT56_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT56_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT56_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT56_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT56_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT56_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT56_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT56_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 591 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT56_WIDTH 56 # define INT56_WIDTH UINT56_WIDTH # define UINT_LEAST56_WIDTH UINT56_WIDTH # define INT_LEAST56_WIDTH UINT_LEAST56_WIDTH # define UINT_FAST56_WIDTH UINT56_WIDTH # define INT_FAST56_WIDTH UINT_FAST56_WIDTH # undef __UINT_LEAST32_WIDTH # define __UINT_LEAST32_WIDTH UINT56_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT56_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT56_WIDTH #endif /* __STDC_VERSION__ */ # 604 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT56_TYPE__ */ # 605 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT48_TYPE__ # define INT48_MAX INT48_C(140737488355327) # define INT48_MIN (-INT48_C(140737488355327)-1) # define UINT48_MAX UINT48_C(281474976710655) # define INT_LEAST48_MIN INT48_MIN # define INT_LEAST48_MAX INT48_MAX # define UINT_LEAST48_MAX UINT48_MAX # define INT_FAST48_MIN INT48_MIN # define INT_FAST48_MAX INT48_MAX # define UINT_FAST48_MAX UINT48_MAX # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT48_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT48_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT48_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT48_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT48_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT48_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT48_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT48_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT48_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 638 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #define UINT48_WIDTH 48 #define INT48_WIDTH UINT48_WIDTH #define UINT_LEAST48_WIDTH UINT48_WIDTH #define INT_LEAST48_WIDTH UINT_LEAST48_WIDTH #define UINT_FAST48_WIDTH UINT48_WIDTH #define INT_FAST48_WIDTH UINT_FAST48_WIDTH #undef __UINT_LEAST32_WIDTH #define __UINT_LEAST32_WIDTH UINT48_WIDTH # undef __UINT_LEAST16_WIDTH #define __UINT_LEAST16_WIDTH UINT48_WIDTH # undef __UINT_LEAST8_WIDTH #define __UINT_LEAST8_WIDTH UINT48_WIDTH #endif /* __STDC_VERSION__ */ # 651 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT48_TYPE__ */ # 652 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT40_TYPE__ # define INT40_MAX INT40_C(549755813887) # define INT40_MIN (-INT40_C(549755813887)-1) # define UINT40_MAX UINT40_C(1099511627775) # define INT_LEAST40_MIN INT40_MIN # define INT_LEAST40_MAX INT40_MAX # define UINT_LEAST40_MAX UINT40_MAX # define INT_FAST40_MIN INT40_MIN # define INT_FAST40_MAX INT40_MAX # define UINT_FAST40_MAX UINT40_MAX # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT40_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT40_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT40_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT40_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT40_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT40_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT40_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT40_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT40_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 685 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT40_WIDTH 40 # define INT40_WIDTH UINT40_WIDTH # define UINT_LEAST40_WIDTH UINT40_WIDTH # define INT_LEAST40_WIDTH UINT_LEAST40_WIDTH # define UINT_FAST40_WIDTH UINT40_WIDTH # define INT_FAST40_WIDTH UINT_FAST40_WIDTH # undef __UINT_LEAST32_WIDTH # define __UINT_LEAST32_WIDTH UINT40_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT40_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT40_WIDTH #endif /* __STDC_VERSION__ */ # 698 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT40_TYPE__ */ # 699 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT32_TYPE__ # define INT32_MAX INT32_C(2147483647) # define INT32_MIN (-INT32_C(2147483647)-1) # define UINT32_MAX UINT32_C(4294967295) # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT32_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT32_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT32_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT32_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT32_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT32_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT32_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT32_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT32_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 726 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT32_WIDTH 32 # define INT32_WIDTH UINT32_WIDTH # undef __UINT_LEAST32_WIDTH # define __UINT_LEAST32_WIDTH UINT32_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT32_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT32_WIDTH #endif /* __STDC_VERSION__ */ # 735 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT32_TYPE__ */ # 736 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT_LEAST32_MIN # define INT_LEAST32_MIN __INT_LEAST32_MIN # define INT_LEAST32_MAX __INT_LEAST32_MAX # define UINT_LEAST32_MAX __UINT_LEAST32_MAX # define INT_FAST32_MIN __INT_LEAST32_MIN # define INT_FAST32_MAX __INT_LEAST32_MAX # define UINT_FAST32_MAX __UINT_LEAST32_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 746 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT_LEAST32_WIDTH __UINT_LEAST32_WIDTH # define INT_LEAST32_WIDTH UINT_LEAST32_WIDTH # define UINT_FAST32_WIDTH __UINT_LEAST32_WIDTH # define INT_FAST32_WIDTH UINT_FAST32_WIDTH #endif /* __STDC_VERSION__ */ # 751 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT_LEAST32_MIN */ # 752 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT24_TYPE__ # define INT24_MAX INT24_C(8388607) # define INT24_MIN (-INT24_C(8388607)-1) # define UINT24_MAX UINT24_C(16777215) # define INT_LEAST24_MIN INT24_MIN # define INT_LEAST24_MAX INT24_MAX # define UINT_LEAST24_MAX UINT24_MAX # define INT_FAST24_MIN INT24_MIN # define INT_FAST24_MAX INT24_MAX # define UINT_FAST24_MAX UINT24_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT24_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT24_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT24_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT24_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT24_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT24_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 779 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT24_WIDTH 24 # define INT24_WIDTH UINT24_WIDTH # define UINT_LEAST24_WIDTH UINT24_WIDTH # define INT_LEAST24_WIDTH UINT_LEAST24_WIDTH # define UINT_FAST24_WIDTH UINT24_WIDTH # define INT_FAST24_WIDTH UINT_FAST24_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT24_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT24_WIDTH #endif /* __STDC_VERSION__ */ # 790 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT24_TYPE__ */ # 791 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT16_TYPE__ #define INT16_MAX INT16_C(32767) #define INT16_MIN (-INT16_C(32767)-1) #define UINT16_MAX UINT16_C(65535) # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT16_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT16_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT16_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT16_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT16_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT16_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 812 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT16_WIDTH 16 # define INT16_WIDTH UINT16_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT16_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT16_WIDTH #endif /* __STDC_VERSION__ */ # 819 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT16_TYPE__ */ # 820 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT_LEAST16_MIN # define INT_LEAST16_MIN __INT_LEAST16_MIN # define INT_LEAST16_MAX __INT_LEAST16_MAX # define UINT_LEAST16_MAX __UINT_LEAST16_MAX # define INT_FAST16_MIN __INT_LEAST16_MIN # define INT_FAST16_MAX __INT_LEAST16_MAX # define UINT_FAST16_MAX __UINT_LEAST16_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 830 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT_LEAST16_WIDTH __UINT_LEAST16_WIDTH # define INT_LEAST16_WIDTH UINT_LEAST16_WIDTH # define UINT_FAST16_WIDTH __UINT_LEAST16_WIDTH # define INT_FAST16_WIDTH UINT_FAST16_WIDTH #endif /* __STDC_VERSION__ */ # 835 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT_LEAST16_MIN */ # 836 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT8_TYPE__ # define INT8_MAX INT8_C(127) # define INT8_MIN (-INT8_C(127)-1) # define UINT8_MAX UINT8_C(255) # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT8_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT8_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT8_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 851 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT8_WIDTH 8 # define INT8_WIDTH UINT8_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT8_WIDTH #endif /* __STDC_VERSION__ */ # 856 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT8_TYPE__ */ # 857 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifdef __INT_LEAST8_MIN # define INT_LEAST8_MIN __INT_LEAST8_MIN # define INT_LEAST8_MAX __INT_LEAST8_MAX # define UINT_LEAST8_MAX __UINT_LEAST8_MAX # define INT_FAST8_MIN __INT_LEAST8_MIN # define INT_FAST8_MAX __INT_LEAST8_MAX # define UINT_FAST8_MAX __UINT_LEAST8_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 867 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define UINT_LEAST8_WIDTH __UINT_LEAST8_WIDTH # define INT_LEAST8_WIDTH UINT_LEAST8_WIDTH # define UINT_FAST8_WIDTH __UINT_LEAST8_WIDTH # define INT_FAST8_WIDTH UINT_FAST8_WIDTH #endif /* __STDC_VERSION__ */ # 872 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __INT_LEAST8_MIN */ # 873 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* Some utility macros */ #define __INTN_MIN(n) __stdint_join3( INT, n, _MIN) #define __INTN_MAX(n) __stdint_join3( INT, n, _MAX) #define __UINTN_MAX(n) __stdint_join3(UINT, n, _MAX) #define __INTN_C(n, v) __stdint_join3( INT, n, _C(v)) #define __UINTN_C(n, v) __stdint_join3(UINT, n, _C(v)) /* C99 7.18.2.4 Limits of integer types capable of holding object pointers. */ /* C99 7.18.3 Limits of other integer types. */ #define INTPTR_MIN (-__INTPTR_MAX__-1) #define INTPTR_MAX __INTPTR_MAX__ #define UINTPTR_MAX __UINTPTR_MAX__ #define PTRDIFF_MIN (-__PTRDIFF_MAX__-1) #define PTRDIFF_MAX __PTRDIFF_MAX__ #define SIZE_MAX __SIZE_MAX__ /* C23 7.22.2.4 Width of integer types capable of holding object pointers. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 893 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* NB: The C standard requires that these be the same value, but the compiler exposes separate internal width macros. */ #define INTPTR_WIDTH __INTPTR_WIDTH__ #define UINTPTR_WIDTH __UINTPTR_WIDTH__ #endif # 898 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ * is enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 902 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #define RSIZE_MAX (SIZE_MAX >> 1) #endif # 904 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* C99 7.18.2.5 Limits of greatest-width integer types. */ #define INTMAX_MIN (-__INTMAX_MAX__-1) #define INTMAX_MAX __INTMAX_MAX__ #define UINTMAX_MAX __UINTMAX_MAX__ /* C23 7.22.2.5 Width of greatest-width integer types. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 912 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* NB: The C standard requires that these be the same value, but the compiler exposes separate internal width macros. */ #define INTMAX_WIDTH __INTMAX_WIDTH__ #define UINTMAX_WIDTH __UINTMAX_WIDTH__ #endif # 917 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* C99 7.18.3 Limits of other integer types. */ #define SIG_ATOMIC_MIN __INTN_MIN(__SIG_ATOMIC_WIDTH__) #define SIG_ATOMIC_MAX __INTN_MAX(__SIG_ATOMIC_WIDTH__) #ifdef __WINT_UNSIGNED__ # define WINT_MIN __UINTN_C(__WINT_WIDTH__, 0) # define WINT_MAX __UINTN_MAX(__WINT_WIDTH__) #else # 925 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define WINT_MIN __INTN_MIN(__WINT_WIDTH__) # define WINT_MAX __INTN_MAX(__WINT_WIDTH__) #endif # 928 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifndef WCHAR_MAX # define WCHAR_MAX __WCHAR_MAX__ #endif # 932 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #ifndef WCHAR_MIN #if 0 /* disabled by -frewrite-includes */ # if __WCHAR_MAX__ == __INTN_MAX(__WCHAR_WIDTH__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 934 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define WCHAR_MIN __INTN_MIN(__WCHAR_WIDTH__) # else # 936 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 # define WCHAR_MIN __UINTN_C(__WCHAR_WIDTH__, 0) # endif # 938 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif # 939 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 /* 7.18.4.2 Macros for greatest-width integer constants. */ #define INTMAX_C(v) __int_c(v, __INTMAX_C_SUFFIX__) #define UINTMAX_C(v) __int_c(v, __UINTMAX_C_SUFFIX__) /* C23 7.22.3.x Width of other integer types. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 946 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #define PTRDIFF_WIDTH __PTRDIFF_WIDTH__ #define SIG_ATOMIC_WIDTH __SIG_ATOMIC_WIDTH__ #define SIZE_WIDTH __SIZE_WIDTH__ #define WCHAR_WIDTH __WCHAR_WIDTH__ #define WINT_WIDTH __WINT_WIDTH__ #endif # 952 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __STDC_HOSTED__ */ # 954 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __MVS__ */ # 955 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* __CLANG_STDINT_H */ # 956 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdint.h" 3 4 #endif /* stdint.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* types.h expanded by -frewrite-includes */ #include #else /* types.h expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_TYPES_H #define _UAPI_LINUX_TYPES_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* types.h expanded by -frewrite-includes */ #include #else /* types.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/types.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_ASM_TYPES_H #define _UAPI_ASM_TYPES_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* int-ll64.h expanded by -frewrite-includes */ #include #else /* int-ll64.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/int-ll64.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_ASM_GENERIC_INT_LL64_H #define _UAPI_ASM_GENERIC_INT_LL64_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* bitsperlong.h expanded by -frewrite-includes */ #include #else /* bitsperlong.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/int-ll64.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/bitsperlong.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* bitsperlong.h expanded by -frewrite-includes */ #include #else /* bitsperlong.h expanded by -frewrite-includes */ # 7 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/bitsperlong.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/bitsperlong.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI__ASM_GENERIC_BITS_PER_LONG #define _UAPI__ASM_GENERIC_BITS_PER_LONG #ifndef __BITS_PER_LONG #if 0 /* disabled by -frewrite-includes */ #if defined(__CHAR_BIT__) && defined(__SIZEOF_LONG__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/bitsperlong.h" 3 4 #define __BITS_PER_LONG (__CHAR_BIT__ * __SIZEOF_LONG__) #else # 13 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/bitsperlong.h" 3 4 #define __BITS_PER_LONG 32 #endif # 15 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/bitsperlong.h" 3 4 #endif # 16 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/bitsperlong.h" 3 4 #endif # 17 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/bitsperlong.h" 3 4 #endif /* bitsperlong.h expanded by -frewrite-includes */ # 8 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/bitsperlong.h" 2 3 4 #endif /* bitsperlong.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/int-ll64.h" 2 3 4 #ifndef __ASSEMBLY__ typedef __signed__ char __s8; typedef unsigned char __u8; typedef __signed__ short __s16; typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; #ifdef __GNUC__ __extension__ typedef __signed__ long long __s64; __extension__ typedef unsigned long long __u64; #else # 21 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/int-ll64.h" 3 4 typedef __signed__ long long __s64; typedef unsigned long long __u64; #endif # 24 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/int-ll64.h" 3 4 #endif # 25 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/int-ll64.h" 3 4 #endif # 26 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/int-ll64.h" 3 4 #endif /* int-ll64.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/types.h" 2 3 4 #ifdef __INT32_TYPE__ #undef __INT32_TYPE__ #define __INT32_TYPE__ int #endif # 14 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/types.h" 3 4 #ifdef __UINT32_TYPE__ #undef __UINT32_TYPE__ #define __UINT32_TYPE__ unsigned int #endif # 18 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/types.h" 3 4 #ifdef __UINTPTR_TYPE__ #undef __UINTPTR_TYPE__ #define __UINTPTR_TYPE__ unsigned long #endif # 22 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/types.h" 3 4 #endif # 23 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/types.h" 3 4 #endif /* types.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h" 2 3 4 #ifndef __ASSEMBLY__ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* posix_types.h expanded by -frewrite-includes */ #include #else /* posix_types.h expanded by -frewrite-includes */ # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/posix_types.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _LINUX_POSIX_TYPES_H #define _LINUX_POSIX_TYPES_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/posix_types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_STDDEF_H #define _UAPI_LINUX_STDDEF_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* compiler_types.h expanded by -frewrite-includes */ #include #else /* compiler_types.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/compiler_types.h" 1 3 4 #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 2 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/compiler_types.h" 3 4 /* * There is no `include/uapi/linux/compiler_types.h`, just * `include/linux/compiler_types.h`. * * We don't need anything _in_ this file, but we do need this file. * The #include is for backwards compatibility. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* compiler.h expanded by -frewrite-includes */ #include #else /* compiler.h expanded by -frewrite-includes */ # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/compiler_types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/compiler.h" 1 3 4 #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 2 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/compiler.h" 3 4 /* * There is no `include/uapi/linux/compiler.h`, just `include/linux/compiler.h`. * * We don't need anything _in_ this file, but we do need this file. * The two #defines are for backwards compatibility. */ #define __force #define __user #endif /* compiler.h expanded by -frewrite-includes */ # 12 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/compiler_types.h" 2 3 4 #endif /* compiler_types.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h" 2 3 4 #ifndef __always_inline #define __always_inline inline #endif # 13 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h" 3 4 #define __struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct TAG { MEMBERS } ATTRS NAME; } ATTRS #ifdef __cplusplus #define __DECLARE_FLEX_ARRAY(T,member) T member[0] #else # 17 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h" 3 4 #define __DECLARE_FLEX_ARRAY(TYPE,NAME) struct { struct { } __empty_ ##NAME; TYPE NAME[]; } #endif # 19 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h" 3 4 #ifndef __counted_by #define __counted_by(m) #endif # 22 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h" 3 4 #endif # 23 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/posix_types.h" 2 3 4 #undef __FD_SETSIZE #define __FD_SETSIZE 1024 typedef struct { unsigned long fds_bits[__FD_SETSIZE / (8 * sizeof(long))]; } __kernel_fd_set; typedef void(* __kernel_sighandler_t) (int); typedef int __kernel_key_t; typedef int __kernel_mqd_t; #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* posix_types.h expanded by -frewrite-includes */ #include #else /* posix_types.h expanded by -frewrite-includes */ # 18 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/posix_types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/posix_types.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef __ARCH_ARM_POSIX_TYPES_H #define __ARCH_ARM_POSIX_TYPES_H typedef unsigned short __kernel_mode_t; #define __kernel_mode_t __kernel_mode_t typedef unsigned short __kernel_ipc_pid_t; #define __kernel_ipc_pid_t __kernel_ipc_pid_t typedef unsigned short __kernel_uid_t; typedef unsigned short __kernel_gid_t; #define __kernel_uid_t __kernel_uid_t typedef unsigned short __kernel_old_dev_t; #define __kernel_old_dev_t __kernel_old_dev_t #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* posix_types.h expanded by -frewrite-includes */ #include #else /* posix_types.h expanded by -frewrite-includes */ # 18 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/posix_types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef __ASM_GENERIC_POSIX_TYPES_H #define __ASM_GENERIC_POSIX_TYPES_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* bitsperlong.h expanded by -frewrite-includes */ #include #else /* bitsperlong.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/bitsperlong.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 7 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/bitsperlong.h" 3 4 # 8 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/bitsperlong.h" 3 4 #endif /* bitsperlong.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 2 3 4 #ifndef __kernel_long_t typedef long __kernel_long_t; typedef unsigned long __kernel_ulong_t; #endif # 14 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_ino_t typedef __kernel_ulong_t __kernel_ino_t; #endif # 17 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_mode_t typedef unsigned int __kernel_mode_t; #endif # 20 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_pid_t typedef int __kernel_pid_t; #endif # 23 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_ipc_pid_t typedef int __kernel_ipc_pid_t; #endif # 26 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_uid_t typedef unsigned int __kernel_uid_t; typedef unsigned int __kernel_gid_t; #endif # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_suseconds_t typedef __kernel_long_t __kernel_suseconds_t; #endif # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_daddr_t typedef int __kernel_daddr_t; #endif # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_uid32_t typedef unsigned int __kernel_uid32_t; typedef unsigned int __kernel_gid32_t; #endif # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_old_uid_t typedef __kernel_uid_t __kernel_old_uid_t; typedef __kernel_gid_t __kernel_old_gid_t; #endif # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_old_dev_t typedef unsigned int __kernel_old_dev_t; #endif # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_size_t #if 0 /* disabled by -frewrite-includes */ #if __BITS_PER_LONG != 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 49 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 typedef unsigned int __kernel_size_t; typedef int __kernel_ssize_t; typedef int __kernel_ptrdiff_t; #else # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 typedef __kernel_ulong_t __kernel_size_t; typedef __kernel_long_t __kernel_ssize_t; typedef __kernel_long_t __kernel_ptrdiff_t; #endif # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #endif # 58 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #ifndef __kernel_fsid_t typedef struct { int val[2]; } __kernel_fsid_t; #endif # 63 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 typedef __kernel_long_t __kernel_off_t; typedef long long __kernel_loff_t; typedef __kernel_long_t __kernel_old_time_t; typedef __kernel_long_t __kernel_time_t; typedef long long __kernel_time64_t; typedef __kernel_long_t __kernel_clock_t; typedef int __kernel_timer_t; typedef int __kernel_clockid_t; typedef char * __kernel_caddr_t; typedef unsigned short __kernel_uid16_t; typedef unsigned short __kernel_gid16_t; #endif # 75 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/posix_types.h" 3 4 #endif /* posix_types.h expanded by -frewrite-includes */ # 19 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/posix_types.h" 2 3 4 #endif # 20 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/posix_types.h" 3 4 #endif /* posix_types.h expanded by -frewrite-includes */ # 19 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/posix_types.h" 2 3 4 #endif # 20 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/posix_types.h" 3 4 #endif /* posix_types.h expanded by -frewrite-includes */ # 12 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h" 2 3 4 #ifdef __SIZEOF_INT128__ typedef __signed__ __int128 __s128 __attribute__((aligned(16))); typedef unsigned __int128 __u128 __attribute__((aligned(16))); #endif # 16 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h" 3 4 #define __bitwise #define __bitwise__ __bitwise typedef __u16 __bitwise __le16; typedef __u16 __bitwise __be16; typedef __u32 __bitwise __le32; typedef __u32 __bitwise __be32; typedef __u64 __bitwise __le64; typedef __u64 __bitwise __be64; typedef __u16 __bitwise __sum16; typedef __u32 __bitwise __wsum; #define __aligned_u64 __u64 __attribute__((aligned(8))) #define __aligned_be64 __be64 __attribute__((aligned(8))) #define __aligned_le64 __le64 __attribute__((aligned(8))) typedef unsigned __bitwise __poll_t; #endif # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h" 3 4 #endif # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/types.h" 3 4 #endif /* types.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* pthread_types.h expanded by -frewrite-includes */ #include #else /* pthread_types.h expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* types.h expanded by -frewrite-includes */ #include #else /* types.h expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _SYS_TYPES_H_ #define _SYS_TYPES_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* gids, uids, and pids are all 32-bit. */ typedef __kernel_gid32_t __gid_t; typedef __gid_t gid_t; typedef __kernel_uid32_t __uid_t; typedef __uid_t uid_t; typedef __kernel_pid_t __pid_t; typedef __pid_t pid_t; typedef uint32_t __id_t; typedef __id_t id_t; typedef unsigned long blkcnt_t; typedef unsigned long blksize_t; typedef __kernel_caddr_t caddr_t; typedef __kernel_clock_t clock_t; typedef __kernel_clockid_t __clockid_t; typedef __clockid_t clockid_t; typedef __kernel_daddr_t daddr_t; typedef unsigned long fsblkcnt_t; typedef unsigned long fsfilcnt_t; typedef __kernel_mode_t __mode_t; typedef __mode_t mode_t; typedef __kernel_key_t __key_t; typedef __key_t key_t; typedef __kernel_ino_t __ino_t; typedef __ino_t ino_t; typedef uint64_t ino64_t; typedef uint32_t __nlink_t; typedef __nlink_t nlink_t; typedef void* __timer_t; typedef __timer_t timer_t; typedef __kernel_suseconds_t __suseconds_t; typedef __suseconds_t suseconds_t; /* useconds_t is 32-bit on both LP32 and LP64. */ typedef uint32_t __useconds_t; typedef __useconds_t useconds_t; #if 0 /* disabled by -frewrite-includes */ #if !defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* This historical accident means that we had a 32-bit dev_t on 32-bit architectures. */ typedef uint32_t dev_t; #else # 91 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef uint64_t dev_t; #endif # 93 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* This historical accident means that we had a 32-bit time_t on 32-bit architectures. */ typedef __kernel_time_t __time_t; typedef __time_t time_t; /* This historical accident means that we had a 32-bit off_t on 32-bit architectures. */ /* See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_FILE_OFFSET64) || defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 101 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef int64_t off_t; typedef off_t loff_t; typedef loff_t off64_t; #else # 105 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef __kernel_off_t off_t; typedef __kernel_loff_t loff_t; typedef loff_t off64_t; #endif # 109 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 111 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* This historical accident means that we had a signed socklen_t on 32-bit architectures. */ typedef int32_t __socklen_t; #else # 114 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* LP64 still has a 32-bit socklen_t. */ typedef uint32_t __socklen_t; #endif # 117 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef __socklen_t socklen_t; typedef __builtin_va_list __va_list; #ifndef _SSIZE_T_DEFINED_ #define _SSIZE_T_DEFINED_ /* Traditionally, bionic's ssize_t was "long int". This caused GCC to emit warnings when you * pass a ssize_t to a printf-style function. The correct type is __kernel_ssize_t, which is * "int", which isn't an ABI change for C code (because they're the same size) but is an ABI * change for C++ because "int" and "long int" mangle to "i" and "l" respectively. So until * we can fix the ABI, this change should not be propagated to the NDK. http://b/8253769. */ typedef __kernel_ssize_t ssize_t; #endif # 130 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef unsigned int uint_t; typedef unsigned int uint; #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) || defined(__BIONIC__) /* Historically bionic exposed these. */ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef uint32_t u_int32_t; typedef uint16_t u_int16_t; typedef uint8_t u_int8_t; typedef uint64_t u_int64_t; #endif # 145 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #endif # 147 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #endif /* types.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 2 3 4 typedef struct { uint32_t flags; void* stack_base; size_t stack_size; size_t guard_size; int32_t sched_policy; int32_t sched_priority; #ifdef __LP64__ char __reserved[16]; #endif # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 } pthread_attr_t; #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 typedef struct { #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 49 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int64_t __private[4]; #else # 51 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int32_t __private[8]; #endif # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 } pthread_barrier_t; #endif # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 typedef int pthread_barrierattr_t; #endif # 59 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 typedef struct { #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 62 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int32_t __private[12]; #else # 64 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int32_t __private[1]; #endif # 66 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 } pthread_cond_t; typedef long pthread_condattr_t; typedef int pthread_key_t; typedef struct { #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int32_t __private[10]; #else # 76 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int32_t __private[1]; #endif # 78 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 } pthread_mutex_t; typedef long pthread_mutexattr_t; typedef int pthread_once_t; typedef struct { #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 86 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int32_t __private[14]; #else # 88 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int32_t __private[10]; #endif # 90 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 } pthread_rwlock_t; typedef long pthread_rwlockattr_t; #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 95 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 typedef struct { #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 97 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int64_t __private; #else # 99 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 int32_t __private[2]; #endif # 101 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 } pthread_spinlock_t; #endif # 103 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/pthread_types.h" 3 4 typedef long pthread_t; #endif /* pthread_types.h expanded by -frewrite-includes */ # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 2 3 4 /* gids, uids, and pids are all 32-bit. */ typedef __kernel_gid32_t __gid_t; typedef __gid_t gid_t; typedef __kernel_uid32_t __uid_t; typedef __uid_t uid_t; typedef __kernel_pid_t __pid_t; typedef __pid_t pid_t; typedef uint32_t __id_t; typedef __id_t id_t; typedef unsigned long blkcnt_t; typedef unsigned long blksize_t; typedef __kernel_caddr_t caddr_t; typedef __kernel_clock_t clock_t; typedef __kernel_clockid_t __clockid_t; typedef __clockid_t clockid_t; typedef __kernel_daddr_t daddr_t; typedef unsigned long fsblkcnt_t; typedef unsigned long fsfilcnt_t; typedef __kernel_mode_t __mode_t; typedef __mode_t mode_t; typedef __kernel_key_t __key_t; typedef __key_t key_t; typedef __kernel_ino_t __ino_t; typedef __ino_t ino_t; typedef uint64_t ino64_t; typedef uint32_t __nlink_t; typedef __nlink_t nlink_t; typedef void* __timer_t; typedef __timer_t timer_t; typedef __kernel_suseconds_t __suseconds_t; typedef __suseconds_t suseconds_t; /* useconds_t is 32-bit on both LP32 and LP64. */ typedef uint32_t __useconds_t; typedef __useconds_t useconds_t; #if 0 /* disabled by -frewrite-includes */ #if !defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* This historical accident means that we had a 32-bit dev_t on 32-bit architectures. */ typedef uint32_t dev_t; #else # 91 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef uint64_t dev_t; #endif # 93 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* This historical accident means that we had a 32-bit time_t on 32-bit architectures. */ typedef __kernel_time_t __time_t; typedef __time_t time_t; /* This historical accident means that we had a 32-bit off_t on 32-bit architectures. */ /* See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_FILE_OFFSET64) || defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 101 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef int64_t off_t; typedef off_t loff_t; typedef loff_t off64_t; #else # 105 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef __kernel_off_t off_t; typedef __kernel_loff_t loff_t; typedef loff_t off64_t; #endif # 109 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 111 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* This historical accident means that we had a signed socklen_t on 32-bit architectures. */ typedef int32_t __socklen_t; #else # 114 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 /* LP64 still has a 32-bit socklen_t. */ typedef uint32_t __socklen_t; #endif # 117 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef __socklen_t socklen_t; typedef __builtin_va_list __va_list; #ifndef _SSIZE_T_DEFINED_ #define _SSIZE_T_DEFINED_ /* Traditionally, bionic's ssize_t was "long int". This caused GCC to emit warnings when you * pass a ssize_t to a printf-style function. The correct type is __kernel_ssize_t, which is * "int", which isn't an ABI change for C code (because they're the same size) but is an ABI * change for C++ because "int" and "long int" mangle to "i" and "l" respectively. So until * we can fix the ABI, this change should not be propagated to the NDK. http://b/8253769. */ typedef __kernel_ssize_t ssize_t; #endif # 130 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef unsigned int uint_t; typedef unsigned int uint; #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) || defined(__BIONIC__) /* Historically bionic exposed these. */ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 135 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef uint32_t u_int32_t; typedef uint16_t u_int16_t; typedef uint8_t u_int8_t; typedef uint64_t u_int64_t; #endif # 145 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #endif # 147 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/types.h" 3 4 #endif /* types.h expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdarg.h expanded by -frewrite-includes */ #include #else /* stdarg.h expanded by -frewrite-includes */ # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 1 3 4 /*===---- stdarg.h - Variable argument handling ----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stdarg.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #undef __need___va_list #undef __need_va_list #undef __need_va_arg #undef __need___va_copy #undef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 28 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 # 30 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #else # 32 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need___va_list) && !defined(__need_va_list) && \ !defined(__need_va_arg) && !defined(__need___va_copy) && \ !defined(__need_va_copy) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #define __need___va_list #define __need_va_list #define __need_va_arg #define __need___va_copy /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode * or -ansi is not specified, since it was not part of C90. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #define __need_va_copy #endif # 47 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg_header_macro.h expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #else /* __stdarg_header_macro.h expanded by -frewrite-includes */ # 47 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_header_macro.h" 1 3 4 /*===---- __stdarg_header_macro.h ------------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __STDARG_H #define __STDARG_H #endif # 13 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_header_macro.h" 3 4 #endif /* __stdarg_header_macro.h expanded by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 2 3 4 #endif # 49 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need___va_list #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg___gnuc_va_list.h expanded by -frewrite-includes */ #include <__stdarg___gnuc_va_list.h> #else /* __stdarg___gnuc_va_list.h expanded by -frewrite-includes */ # 51 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg___gnuc_va_list.h" 1 3 4 /*===---- __stdarg___gnuc_va_list.h - Definition of __gnuc_va_list ---------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __GNUC_VA_LIST #define __GNUC_VA_LIST typedef __builtin_va_list __gnuc_va_list; #endif # 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg___gnuc_va_list.h" 3 4 #endif /* __stdarg___gnuc_va_list.h expanded by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 2 3 4 #undef __need___va_list #endif /* defined(__need___va_list) */ # 54 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need_va_list #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg_va_list.h expanded by -frewrite-includes */ #include <__stdarg_va_list.h> #else /* __stdarg_va_list.h expanded by -frewrite-includes */ # 56 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_list.h" 1 3 4 /*===---- __stdarg_va_list.h - Definition of va_list -----------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef _VA_LIST #define _VA_LIST typedef __builtin_va_list va_list; #endif # 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_list.h" 3 4 #endif /* __stdarg_va_list.h expanded by -frewrite-includes */ # 57 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 2 3 4 #undef __need_va_list #endif /* defined(__need_va_list) */ # 59 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need_va_arg #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg_va_arg.h expanded by -frewrite-includes */ #include <__stdarg_va_arg.h> #else /* __stdarg_va_arg.h expanded by -frewrite-includes */ # 61 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_arg.h" 1 3 4 /*===---- __stdarg_va_arg.h - Definitions of va_start, va_arg, va_end-------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef va_arg #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 13 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_arg.h" 3 4 /* C23 does not require the second parameter for va_start. */ #define va_start(ap, ...) __builtin_va_start(ap, 0) #else # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_arg.h" 3 4 /* Versions before C23 do require the second parameter. */ #define va_start(ap, param) __builtin_va_start(ap, param) #endif # 19 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_arg.h" 3 4 #define va_end(ap) __builtin_va_end(ap) #define va_arg(ap, type) __builtin_va_arg(ap, type) #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_arg.h" 3 4 #endif /* __stdarg_va_arg.h expanded by -frewrite-includes */ # 62 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 2 3 4 #undef __need_va_arg #endif /* defined(__need_va_arg) */ # 64 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need___va_copy #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg___va_copy.h expanded by -frewrite-includes */ #include <__stdarg___va_copy.h> #else /* __stdarg___va_copy.h expanded by -frewrite-includes */ # 66 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg___va_copy.h" 1 3 4 /*===---- __stdarg___va_copy.h - Definition of __va_copy -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __va_copy #define __va_copy(d, s) __builtin_va_copy(d, s) #endif # 13 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg___va_copy.h" 3 4 #endif /* __stdarg___va_copy.h expanded by -frewrite-includes */ # 67 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 2 3 4 #undef __need___va_copy #endif /* defined(__need___va_copy) */ # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need_va_copy #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg_va_copy.h expanded by -frewrite-includes */ #include <__stdarg_va_copy.h> #else /* __stdarg_va_copy.h expanded by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_copy.h" 1 3 4 /*===---- __stdarg_va_copy.h - Definition of va_copy------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef va_copy #define va_copy(dest, src) __builtin_va_copy(dest, src) #endif # 13 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stdarg_va_copy.h" 3 4 #endif /* __stdarg_va_copy.h expanded by -frewrite-includes */ # 72 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 2 3 4 #undef __need_va_copy #endif /* defined(__need_va_copy) */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #endif /* __MVS__ */ # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 4 #endif /* stdarg.h expanded by -frewrite-includes */ # 45 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 45 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 4 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 4 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 46 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* seek_constants.h expanded by -frewrite-includes */ #include #else /* seek_constants.h expanded by -frewrite-includes */ # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/seek_constants.h" 1 3 4 /* * Copyright (C) 2016 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/seek_constants.h" 3 4 /** * @file bits/seek_constants.h * @brief The `SEEK_` constants. */ /** Seek to an absolute offset. */ #define SEEK_SET 0 /** Seek relative to the current offset. */ #define SEEK_CUR 1 /** Seek relative to the end of the file. */ #define SEEK_END 2 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/seek_constants.h" 3 4 /** * Seek to the first data (non-hole) location in the file * greater than or equal to the given offset. * * See [lseek(2)](http://man7.org/linux/man-pages/man2/lseek.2.html). */ #define SEEK_DATA 3 /** * Seek to the first hole (non-data) location in the file * greater than or equal to the given offset. * * See [lseek(2)](http://man7.org/linux/man-pages/man2/lseek.2.html). */ #define SEEK_HOLE 4 #endif # 62 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/seek_constants.h" 3 4 #endif /* seek_constants.h expanded by -frewrite-includes */ # 48 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ < 24 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 # 51 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #endif # 52 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 __BEGIN_DECLS typedef off_t fpos_t; typedef off64_t fpos64_t; struct __sFILE; typedef struct __sFILE FILE; #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 62 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 extern FILE* _Nonnull stdin __INTRODUCED_IN(23); extern FILE* _Nonnull stdout __INTRODUCED_IN(23); extern FILE* _Nonnull stderr __INTRODUCED_IN(23); /* C99 and earlier plus current C++ standards say these must be macros. */ #define stdin stdin #define stdout stdout #define stderr stderr #else # 71 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 /* Before M the actual symbols for stdin and friends had different names. */ extern FILE __sF[] __REMOVED_IN(23, "Use stdin/stdout/stderr"); #define stdin (&__sF[0]) #define stdout (&__sF[1]) #define stderr (&__sF[2]) #endif # 78 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 /* * The following three definitions are for ANSI C, which took them * from System V, which brilliantly took internal interface macros and * made them official arguments to setvbuf(), without renaming them. * Hence, these ugly _IOxxx names are *supposed* to appear in user code. * * Although numbered as their counterparts above, the implementation * does not rely on this. */ #define _IOFBF 0 /* setvbuf should set fully buffered */ #define _IOLBF 1 /* setvbuf should set line buffered */ #define _IONBF 2 /* setvbuf should set unbuffered */ #define BUFSIZ 1024 /* size of buffer used by setbuf */ #define EOF (-1) /* * FOPEN_MAX is a minimum maximum, and is the number of streams that * stdio can provide without attempting to allocate further resources * (which could fail). Do not use this for anything. */ #define FOPEN_MAX 20 #define FILENAME_MAX 4096 #define L_tmpnam 4096 #define TMP_MAX 308915776 void clearerr(FILE* _Nonnull __fp); int fclose(FILE* _Nonnull __fp); int feof(FILE* _Nonnull __fp); int ferror(FILE* _Nonnull __fp); int fflush(FILE* _Nullable __fp); int fgetc(FILE* _Nonnull __fp); char* _Nullable fgets(char* _Nonnull __buf, int __size, FILE* _Nonnull __fp); int fprintf(FILE* _Nonnull __fp , const char* _Nonnull __fmt, ...) __printflike(2, 3); int fputc(int __ch, FILE* _Nonnull __fp); int fputs(const char* _Nonnull __s, FILE* _Nonnull __fp); size_t fread(void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp); int fscanf(FILE* _Nonnull __fp, const char* _Nonnull __fmt, ...) __scanflike(2, 3); size_t fwrite(const void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp); int getc(FILE* _Nonnull __fp); int getchar(void); ssize_t getdelim(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, int __delimiter, FILE* _Nonnull __fp); ssize_t getline(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, FILE* _Nonnull __fp); void perror(const char* _Nullable __msg); int printf(const char* _Nonnull __fmt, ...) __printflike(1, 2); int putc(int __ch, FILE* _Nonnull __fp); int putchar(int __ch); int puts(const char* _Nonnull __s); int remove(const char* _Nonnull __path); void rewind(FILE* _Nonnull __fp); int scanf(const char* _Nonnull __fmt, ...) __scanflike(1, 2); void setbuf(FILE* _Nonnull __fp, char* _Nullable __buf); int setvbuf(FILE* _Nonnull __fp, char* _Nullable __buf, int __mode, size_t __size); int sscanf(const char* _Nonnull __s, const char* _Nonnull __fmt, ...) __scanflike(2, 3); int ungetc(int __ch, FILE* _Nonnull __fp); int vfprintf(FILE* _Nonnull __fp, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0); int vprintf(const char* _Nonnull __fp, va_list __args) __printflike(1, 0); int dprintf(int __fd, const char* _Nonnull __fmt, ...) __printflike(2, 3); int vdprintf(int __fd, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0); #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ < 201112L) || \ (defined(__cplusplus) && __cplusplus <= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 144 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 char* _Nullable gets(char* _Nonnull __buf) __attribute__((__deprecated__("gets is unsafe, use fgets instead"))); #endif # 146 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int sprintf(char* __BIONIC_COMPLICATED_NULLNESS __s, const char* _Nonnull __fmt, ...) __printflike(2, 3) __warnattr_strict("sprintf is often misused; please use snprintf"); int vsprintf(char* __BIONIC_COMPLICATED_NULLNESS __s, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0) __warnattr_strict("vsprintf is often misused; please use vsnprintf"); char* _Nullable tmpnam(char* _Nullable __s) __warnattr("tmpnam is unsafe, use mkstemp or tmpfile instead"); #define P_tmpdir "/tmp/" /* deprecated */ char* _Nullable tempnam(const char* _Nullable __dir, const char* _Nullable __prefix) __warnattr("tempnam is unsafe, use mkstemp or tmpfile instead"); /** * [rename(2)](http://man7.org/linux/man-pages/man2/rename.2.html) changes * the name or location of a file. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int rename(const char* _Nonnull __old_path, const char* _Nonnull __new_path); /** * [renameat(2)](http://man7.org/linux/man-pages/man2/renameat.2.html) changes * the name or location of a file, interpreting relative paths using an fd. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int renameat(int __old_dir_fd, const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 173 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 /** * Flag for [renameat2(2)](http://man7.org/linux/man-pages/man2/renameat2.2.html) * to fail if the new path already exists. */ #define RENAME_NOREPLACE (1<<0) /** * Flag for [renameat2(2)](http://man7.org/linux/man-pages/man2/renameat2.2.html) * to atomically exchange the two paths. */ #define RENAME_EXCHANGE (1<<1) /** * Flag for [renameat2(2)](http://man7.org/linux/man-pages/man2/renameat2.2.html) * to create a union/overlay filesystem object. */ #define RENAME_WHITEOUT (1<<2) /** * [renameat2(2)](http://man7.org/linux/man-pages/man2/renameat2.2.html) changes * the name or location of a file, interpreting relative paths using an fd, * with optional `RENAME_` flags. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 30 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 201 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int renameat2(int __old_dir_fd, const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path, unsigned __flags) __INTRODUCED_IN(30); #endif /* __ANDROID_API__ >= 30 */ # 203 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #endif # 206 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int fseek(FILE* _Nonnull __fp, long __offset, int __whence); long ftell(FILE* _Nonnull __fp); /* See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_FILE_OFFSET64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 212 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 214 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int fgetpos(FILE* _Nonnull __fp, fpos_t* _Nonnull __pos) __RENAME(fgetpos64) __INTRODUCED_IN(24); int fsetpos(FILE* _Nonnull __fp, const fpos_t* _Nonnull __pos) __RENAME(fsetpos64) __INTRODUCED_IN(24); int fseeko(FILE* _Nonnull __fp, off_t __offset, int __whence) __RENAME(fseeko64) __INTRODUCED_IN(24); off_t ftello(FILE* _Nonnull __fp) __RENAME(ftello64) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 219 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined(__USE_BSD) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 221 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 /* If __read_fn and __write_fn are both nullptr, it will cause EINVAL */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 224 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable funopen(const void* _Nullable __cookie, int (* __BIONIC_COMPLICATED_NULLNESS __read_fn)(void* _Nonnull, char* _Nonnull, int), int (* __BIONIC_COMPLICATED_NULLNESS __write_fn)(void* _Nonnull, const char* _Nonnull, int), fpos_t (* _Nullable __seek_fn)(void* _Nonnull, fpos_t, int), int (* _Nullable __close_fn)(void* _Nonnull)) __RENAME(funopen64) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 230 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 # endif # 232 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #else # 233 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int fgetpos(FILE* _Nonnull __fp, fpos_t* _Nonnull __pos); int fsetpos(FILE* _Nonnull __fp, const fpos_t* _Nonnull __pos); int fseeko(FILE* _Nonnull __fp, off_t __offset, int __whence); off_t ftello(FILE* _Nonnull __fp); #if 0 /* disabled by -frewrite-includes */ # if defined(__USE_BSD) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 238 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 /* If __read_fn and __write_fn are both nullptr, it will cause EINVAL */ FILE* _Nullable funopen(const void* _Nullable __cookie, int (* __BIONIC_COMPLICATED_NULLNESS __read_fn)(void* _Nonnull, char* _Nonnull, int), int (* __BIONIC_COMPLICATED_NULLNESS __write_fn)(void* _Nonnull, const char* _Nonnull, int), fpos_t (* _Nullable __seek_fn)(void* _Nonnull, fpos_t, int), int (* _Nullable __close_fn)(void* _Nonnull)); # endif # 245 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #endif # 246 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 248 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int fgetpos64(FILE* _Nonnull __fp, fpos64_t* _Nonnull __pos) __INTRODUCED_IN(24); int fsetpos64(FILE* _Nonnull __fp, const fpos64_t* _Nonnull __pos) __INTRODUCED_IN(24); int fseeko64(FILE* _Nonnull __fp, off64_t __offset, int __whence) __INTRODUCED_IN(24); off64_t ftello64(FILE* _Nonnull __fp) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 253 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 255 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 /* If __read_fn and __write_fn are both nullptr, it will cause EINVAL */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 258 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable funopen64(const void* _Nullable __cookie, int (* __BIONIC_COMPLICATED_NULLNESS __read_fn)(void* _Nonnull, char* _Nonnull, int), int (* __BIONIC_COMPLICATED_NULLNESS __write_fn)(void* _Nonnull, const char* _Nonnull, int), fpos64_t (* _Nullable __seek_fn)(void* _Nonnull, fpos64_t, int), int (* _Nullable __close_fn)(void* _Nonnull)) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 264 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #endif # 266 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable fopen(const char* _Nonnull __path, const char* _Nonnull __mode); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 270 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable fopen64(const char* _Nonnull __path, const char* _Nonnull __mode) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 272 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable freopen(const char* _Nullable __path, const char* _Nonnull __mode, FILE* _Nonnull __fp); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 276 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable freopen64(const char* _Nullable __path, const char* _Nonnull __mode, FILE* _Nonnull __fp) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 278 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable tmpfile(void); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 282 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable tmpfile64(void) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 284 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int snprintf(char* __BIONIC_COMPLICATED_NULLNESS __buf, size_t __size, const char* _Nonnull __fmt, ...) __printflike(3, 4); int vfscanf(FILE* _Nonnull __fp, const char* _Nonnull __fmt, va_list __args) __scanflike(2, 0); int vscanf(const char* _Nonnull __fmt , va_list __args) __scanflike(1, 0); int vsnprintf(char* __BIONIC_COMPLICATED_NULLNESS __buf, size_t __size, const char* _Nonnull __fmt, va_list __args) __printflike(3, 0); int vsscanf(const char* _Nonnull __s, const char* _Nonnull __fmt, va_list __args) __scanflike(2, 0); #define L_ctermid 1024 /* size for ctermid() */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 295 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 char* _Nonnull ctermid(char* _Nullable __buf) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 297 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable fdopen(int __fd, const char* _Nonnull __mode); int fileno(FILE* _Nonnull __fp); int pclose(FILE* _Nonnull __fp); FILE* _Nullable popen(const char* _Nonnull __command, const char* _Nonnull __mode); void flockfile(FILE* _Nonnull __fp); int ftrylockfile(FILE* _Nonnull __fp); void funlockfile(FILE* _Nonnull __fp); int getc_unlocked(FILE* _Nonnull __fp); int getchar_unlocked(void); int putc_unlocked(int __ch, FILE* _Nonnull __fp); int putchar_unlocked(int __ch); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 313 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 FILE* _Nullable fmemopen(void* _Nullable __buf, size_t __size, const char* _Nonnull __mode) __INTRODUCED_IN(23); FILE* _Nullable open_memstream(char* _Nonnull * _Nonnull __ptr, size_t* _Nonnull __size_ptr) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 316 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) || defined(__BIONIC__) /* Historically bionic exposed these. */ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 319 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int asprintf(char* _Nullable * _Nonnull __s_ptr, const char* _Nonnull __fmt, ...) __printflike(2, 3); char* _Nullable fgetln(FILE* _Nonnull __fp, size_t* _Nonnull __length_ptr); int fpurge(FILE* _Nonnull __fp); void setbuffer(FILE* _Nonnull __fp, char* _Nullable __buf, int __size); int setlinebuf(FILE* _Nonnull __fp); int vasprintf(char* _Nullable * _Nonnull __s_ptr, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 327 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 void clearerr_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(23); int feof_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(23); int ferror_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 331 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 334 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int fileno_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 336 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #define fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0) #define fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0) #endif # 340 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 342 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 344 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int fflush_unlocked(FILE* _Nullable __fp) __INTRODUCED_IN(28); int fgetc_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(28); int fputc_unlocked(int __ch, FILE* _Nonnull __fp) __INTRODUCED_IN(28); size_t fread_unlocked(void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp) __INTRODUCED_IN(28); size_t fwrite_unlocked(const void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 350 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #endif # 352 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 354 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 356 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 int fputs_unlocked(const char* _Nonnull __s, FILE* _Nonnull __fp) __INTRODUCED_IN(28); char* _Nullable fgets_unlocked(char* _Nonnull __buf, int __size, FILE* _Nonnull __fp) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 359 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #endif # 361 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 363 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 363 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 # 364 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #endif # 365 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 __END_DECLS #endif # 369 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdio.h" 3 4 #endif /* stdio.h expanded by -frewrite-includes */ # 13 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* math.h expanded by -frewrite-includes */ #include #else /* math.h expanded by -frewrite-includes */ # 13 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 1 3 4 /* * ==================================================== * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * * Developed at SunPro, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this * software is freely granted, provided that this notice * is preserved. * ==================================================== */ /* * Originally based on fdlibm.h 5.1 via FreeBSD. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 17 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 # 19 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* limits.h expanded by -frewrite-includes */ #include #else /* limits.h expanded by -frewrite-includes */ # 19 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 1 3 4 /*===---- limits.h - Standard header for integer sizes --------------------===*\ * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * \*===----------------------------------------------------------------------===*/ #ifndef __CLANG_LIMITS_H #define __CLANG_LIMITS_H #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 13 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 13 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 # 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #else # 15 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 /* The system's limits.h may, in turn, try to #include_next GCC's limits.h. Avert this #include_next madness. */ #if 0 /* disabled by -frewrite-includes */ #if defined __GNUC__ && !defined _GCC_LIMITS_H_ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 19 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #define _GCC_LIMITS_H_ #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 /* System headers include a number of constants from POSIX in . Include it if we're hosted. */ #if 0 /* disabled by -frewrite-includes */ #if __STDC_HOSTED__ && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 25 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* limits.h expanded by -frewrite-includes */ #include_next #else /* limits.h expanded by -frewrite-includes */ # 25 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 1 3 4 /* $OpenBSD: limits.h,v 1.13 2005/12/31 19:29:38 millert Exp $ */ /* $NetBSD: limits.h,v 1.7 1994/10/26 00:56:00 cgd Exp $ */ /* * Copyright (c) 1988 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)limits.h 5.9 (Berkeley) 4/3/91 */ #ifndef _LIMITS_H_ #define _LIMITS_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 /* Historically bionic exposed the content of from and too. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* float.h expanded by -frewrite-includes */ #include #else /* float.h expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 1 3 4 /*===---- float.h - Characteristics of floating point types ----------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __CLANG_FLOAT_H #define __CLANG_FLOAT_H #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # 15 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #else # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 /* If we're on MinGW, fall back to the system's float.h, which might have * additional definitions provided for Windows. * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx * * Also fall back on Darwin and AIX to allow additional definitions and * implementation-defined values. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__APPLE__) || defined(__MINGW32__) || defined(_MSC_VER) || \ defined(_AIX)) && \ __STDC_HOSTED__ && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 /* Prior to Apple's 10.7 SDK, float.h SDK header used to apply an extra level * of #include_next to keep Metrowerks compilers happy. Avoid this * extra indirection. */ #ifdef __APPLE__ #define _FLOAT_H_ #endif # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include_next #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 /* Undefine anything that we'll be redefining below. */ # undef FLT_EVAL_METHOD # undef FLT_ROUNDS # undef FLT_RADIX # undef FLT_MANT_DIG # undef DBL_MANT_DIG # undef LDBL_MANT_DIG #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ !defined(__STRICT_ANSI__) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 49 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # undef DECIMAL_DIG # endif # 51 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # undef FLT_DIG # undef DBL_DIG # undef LDBL_DIG # undef FLT_MIN_EXP # undef DBL_MIN_EXP # undef LDBL_MIN_EXP # undef FLT_MIN_10_EXP # undef DBL_MIN_10_EXP # undef LDBL_MIN_10_EXP # undef FLT_MAX_EXP # undef DBL_MAX_EXP # undef LDBL_MAX_EXP # undef FLT_MAX_10_EXP # undef DBL_MAX_10_EXP # undef LDBL_MAX_10_EXP # undef FLT_MAX # undef DBL_MAX # undef LDBL_MAX # undef FLT_EPSILON # undef DBL_EPSILON # undef LDBL_EPSILON # undef FLT_MIN # undef DBL_MIN # undef LDBL_MIN #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ !defined(__STRICT_ANSI__) || \ (defined(__cplusplus) && __cplusplus >= 201703L) || \ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 79 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # undef FLT_TRUE_MIN # undef DBL_TRUE_MIN # undef LDBL_TRUE_MIN # undef FLT_DECIMAL_DIG # undef DBL_DECIMAL_DIG # undef LDBL_DECIMAL_DIG # undef FLT_HAS_SUBNORM # undef DBL_HAS_SUBNORM # undef LDBL_HAS_SUBNORM # endif # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # undef FLT_NORM_MAX # undef DBL_NORM_MAX # undef LDBL_NORM_MAX #endif # 95 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #endif # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # undef INFINITY # undef NAN #endif # 102 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 /* Characteristics of floating point types, C99 5.2.4.2.2 */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 107 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ #endif # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #define FLT_ROUNDS (__builtin_flt_rounds()) #define FLT_RADIX __FLT_RADIX__ #define FLT_MANT_DIG __FLT_MANT_DIG__ #define DBL_MANT_DIG __DBL_MANT_DIG__ #define LDBL_MANT_DIG __LDBL_MANT_DIG__ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ !defined(__STRICT_ANSI__) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 120 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # define DECIMAL_DIG __DECIMAL_DIG__ #endif # 122 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #define FLT_DIG __FLT_DIG__ #define DBL_DIG __DBL_DIG__ #define LDBL_DIG __LDBL_DIG__ #define FLT_MIN_EXP __FLT_MIN_EXP__ #define DBL_MIN_EXP __DBL_MIN_EXP__ #define LDBL_MIN_EXP __LDBL_MIN_EXP__ #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ #define FLT_MAX_EXP __FLT_MAX_EXP__ #define DBL_MAX_EXP __DBL_MAX_EXP__ #define LDBL_MAX_EXP __LDBL_MAX_EXP__ #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ #define FLT_MAX __FLT_MAX__ #define DBL_MAX __DBL_MAX__ #define LDBL_MAX __LDBL_MAX__ #define FLT_EPSILON __FLT_EPSILON__ #define DBL_EPSILON __DBL_EPSILON__ #define LDBL_EPSILON __LDBL_EPSILON__ #define FLT_MIN __FLT_MIN__ #define DBL_MIN __DBL_MIN__ #define LDBL_MIN __LDBL_MIN__ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ !defined(__STRICT_ANSI__) || \ (defined(__cplusplus) && __cplusplus >= 201703L) || \ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 159 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 # define FLT_TRUE_MIN __FLT_DENORM_MIN__ # define DBL_TRUE_MIN __DBL_DENORM_MIN__ # define LDBL_TRUE_MIN __LDBL_DENORM_MIN__ # define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__ # define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__ # define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__ # define FLT_HAS_SUBNORM __FLT_HAS_DENORM__ # define DBL_HAS_SUBNORM __DBL_HAS_DENORM__ # define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__ #endif # 169 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 172 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 /* C23 5.2.5.3.3p29-30 */ # define INFINITY (__builtin_inff()) # define NAN (__builtin_nanf("")) /* C23 5.2.5.3.3p32 */ # define FLT_NORM_MAX __FLT_NORM_MAX__ # define DBL_NORM_MAX __DBL_NORM_MAX__ # define LDBL_NORM_MAX __LDBL_NORM_MAX__ #endif # 180 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #ifdef __STDC_WANT_IEC_60559_TYPES_EXT__ # define FLT16_MANT_DIG __FLT16_MANT_DIG__ # define FLT16_DECIMAL_DIG __FLT16_DECIMAL_DIG__ # define FLT16_DIG __FLT16_DIG__ # define FLT16_MIN_EXP __FLT16_MIN_EXP__ # define FLT16_MIN_10_EXP __FLT16_MIN_10_EXP__ # define FLT16_MAX_EXP __FLT16_MAX_EXP__ # define FLT16_MAX_10_EXP __FLT16_MAX_10_EXP__ # define FLT16_MAX __FLT16_MAX__ # define FLT16_EPSILON __FLT16_EPSILON__ # define FLT16_MIN __FLT16_MIN__ # define FLT16_TRUE_MIN __FLT16_TRUE_MIN__ #endif /* __STDC_WANT_IEC_60559_TYPES_EXT__ */ # 194 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #endif /* __MVS__ */ # 196 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #endif /* __CLANG_FLOAT_H */ # 197 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/float.h" 3 4 #endif /* float.h expanded by -frewrite-includes */ # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* limits.h expanded by -frewrite-includes */ #include #else /* limits.h expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/limits.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_LIMITS_H #define _UAPI_LINUX_LIMITS_H #define NR_OPEN 1024 #define NGROUPS_MAX 65536 #define ARG_MAX 131072 #define LINK_MAX 127 #define MAX_CANON 255 #define MAX_INPUT 255 #define NAME_MAX 255 #define PATH_MAX 4096 #define PIPE_BUF 4096 #define XATTR_NAME_MAX 255 #define XATTR_SIZE_MAX 65536 #define XATTR_LIST_MAX 65536 #define RTSIG_MAX 32 #endif # 23 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/limits.h" 3 4 #endif /* limits.h expanded by -frewrite-includes */ # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 2 3 4 #define PASS_MAX 128 /* _PASSWORD_LEN from */ #define NL_ARGMAX 9 #define NL_LANGMAX 14 #define NL_MSGMAX 32767 #define NL_NMAX 1 #define NL_SETMAX 255 #define NL_TEXTMAX 255 #define TMP_MAX 308915776 /* TODO: get all these from the compiler's ? */ #define CHAR_BIT 8 #ifdef __LP64__ # define LONG_BIT 64 #else # 62 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # define LONG_BIT 32 #endif # 64 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #define WORD_BIT 32 #define SCHAR_MAX 0x7f /* max value for a signed char */ #define SCHAR_MIN (-0x7f-1) /* min value for a signed char */ #define UCHAR_MAX 0xffU /* max value for an unsigned char */ #ifdef __CHAR_UNSIGNED__ # define CHAR_MIN 0 /* min value for a char */ # define CHAR_MAX 0xff /* max value for a char */ #else # 74 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # define CHAR_MAX 0x7f # define CHAR_MIN (-0x7f-1) #endif # 77 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #define USHRT_MAX 0xffffU /* max value for an unsigned short */ #define SHRT_MAX 0x7fff /* max value for a short */ #define SHRT_MIN (-0x7fff-1) /* min value for a short */ #define UINT_MAX 0xffffffffU /* max value for an unsigned int */ #define INT_MAX 0x7fffffff /* max value for an int */ #define INT_MIN (-0x7fffffff-1) /* min value for an int */ #ifdef __LP64__ # define ULONG_MAX 0xffffffffffffffffUL /* max value for unsigned long */ # define LONG_MAX 0x7fffffffffffffffL /* max value for a signed long */ # define LONG_MIN (-0x7fffffffffffffffL-1) /* min value for a signed long */ #else # 91 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # define ULONG_MAX 0xffffffffUL /* max value for an unsigned long */ # define LONG_MAX 0x7fffffffL /* max value for a long */ # define LONG_MIN (-0x7fffffffL-1)/* min value for a long */ #endif # 95 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # define ULLONG_MAX 0xffffffffffffffffULL /* max value for unsigned long long */ # define LLONG_MAX 0x7fffffffffffffffLL /* max value for a signed long long */ # define LLONG_MIN (-0x7fffffffffffffffLL-1) /* min value for a signed long long */ /* GLibc compatibility definitions. Note that these are defined by GCC's only when __GNU_LIBRARY__ is defined, i.e. when targetting GLibc. */ #ifndef LONG_LONG_MIN #define LONG_LONG_MIN LLONG_MIN #endif # 107 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #ifndef LONG_LONG_MAX #define LONG_LONG_MAX LLONG_MAX #endif # 111 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #ifndef ULONG_LONG_MAX #define ULONG_LONG_MAX ULLONG_MAX #endif # 115 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) || defined(__BIONIC__) /* Historically bionic exposed these. */ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 117 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # define UID_MAX UINT_MAX /* max value for a uid_t */ # define GID_MAX UINT_MAX /* max value for a gid_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 120 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #define SIZE_T_MAX ULONG_MAX #else # 122 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #define SIZE_T_MAX UINT_MAX #endif # 124 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #endif # 125 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 127 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #define SSIZE_MAX LONG_MAX #else # 129 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #define SSIZE_MAX INT_MAX #endif # 131 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #define MB_LEN_MAX 4 #define NZERO 20 #define IOV_MAX 1024 #define SEM_VALUE_MAX 0x3fffffff /** Do not use: prefer getline() or asprintf() rather than hard-coding an arbitrary size. */ #define LINE_MAX _POSIX2_LINE_MAX /* POSIX says these belong in but BSD has some in . */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* posix_limits.h expanded by -frewrite-includes */ #include #else /* posix_limits.h expanded by -frewrite-includes */ # 143 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/posix_limits.h" 1 3 4 /* * Copyright (C) 2014 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _BITS_POSIX_LIMITS_H_ #define _BITS_POSIX_LIMITS_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/posix_limits.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/posix_limits.h" 3 4 #define _POSIX_VERSION 200809L #define _POSIX2_VERSION _POSIX_VERSION #define _XOPEN_VERSION 700 #define __BIONIC_POSIX_FEATURE_MISSING (-1) #define __BIONIC_POSIX_FEATURE_SINCE(level) \ (((__ANDROID_API__) >= (level)) ? _POSIX_VERSION : __BIONIC_POSIX_FEATURE_MISSING) /* Availability macros. */ /* See http://man7.org/linux/man-pages/man7/posixoptions.7.html for documentation. */ /* Keep this list sorted by name. */ #define _POSIX_ADVISORY_INFO __BIONIC_POSIX_FEATURE_SINCE(23) /* posix_memadvise arrived late. */ #define _POSIX_ASYNCHRONOUS_IO __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_BARRIERS __BIONIC_POSIX_FEATURE_SINCE(24) #define _POSIX_CHOWN_RESTRICTED 1 /* chown/fchown require appropriate privileges. */ #define _POSIX_CLOCK_SELECTION __BIONIC_POSIX_FEATURE_SINCE(21) /* clock_nanosleep/pthread_condattr_getclock/pthread_condattr_setclock. */ #define _POSIX_CPUTIME _POSIX_VERSION /* CLOCK_PROCESS_CPUTIME_ID. */ #define _POSIX_FSYNC _POSIX_VERSION /* fsync. */ #define _POSIX_IPV6 _POSIX_VERSION #define _POSIX_JOB_CONTROL __BIONIC_POSIX_FEATURE_SINCE(21) /* setpgid/tcdrain/tcflush/tcgetpgrp/tcsendbreak/tcsetattr/tcsetpgrp. */ #define _POSIX_MAPPED_FILES _POSIX_VERSION /* mmap/msync/munmap. */ #define _POSIX_MEMLOCK __BIONIC_POSIX_FEATURE_SINCE(17) /* mlockall/munlockall. */ #define _POSIX_MEMLOCK_RANGE _POSIX_VERSION /* mlock/munlock. */ #define _POSIX_MEMORY_PROTECTION _POSIX_VERSION /* mprotect. */ #define _POSIX_MESSAGE_PASSING __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_MONOTONIC_CLOCK _POSIX_VERSION /* CLOCK_MONOTONIC. */ #define _POSIX_NO_TRUNC 1 /* Over-long pathnames return errors. */ #define _POSIX_PRIORITIZED_IO __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_PRIORITY_SCHEDULING _POSIX_VERSION /* sched_*. */ #define _POSIX_RAW_SOCKETS _POSIX_VERSION #define _POSIX_READER_WRITER_LOCKS _POSIX_VERSION /* pthread_rwlock*. */ #define _POSIX_REALTIME_SIGNALS __BIONIC_POSIX_FEATURE_SINCE(23) /* sigqueue/sigtimedwait/sigwaitinfo. */ #define _POSIX_REGEXP 1 #define _POSIX_SAVED_IDS 1 #define _POSIX_SEMAPHORES _POSIX_VERSION /* sem_*. */ #define _POSIX_SHARED_MEMORY_OBJECTS __BIONIC_POSIX_FEATURE_MISSING /* mmap/munmap are implemented, but shm_open/shm_unlink are not. */ #define _POSIX_SHELL 1 /* system. */ #define _POSIX_SPAWN __BIONIC_POSIX_FEATURE_SINCE(28) /* */ #define _POSIX_SPIN_LOCKS __BIONIC_POSIX_FEATURE_SINCE(24) /* pthread_spin_*. */ #define _POSIX_SPORADIC_SERVER __BIONIC_POSIX_FEATURE_MISSING /* No SCHED_SPORADIC. */ #define _POSIX_SYNCHRONIZED_IO _POSIX_VERSION #define _POSIX_THREAD_ATTR_STACKADDR _POSIX_VERSION /* Strictly, we're missing the deprecated pthread_attr_getstackaddr/pthread_attr_setstackaddr, but we do have pthread_attr_getstack/pthread_attr_setstack. */ #define _POSIX_THREAD_ATTR_STACKSIZE _POSIX_VERSION /* pthread_attr_getstack/pthread_attr_getstacksize/pthread_attr_setstack/pthread_attr_setstacksize. */ #define _POSIX_THREAD_CPUTIME _POSIX_VERSION /* CLOCK_THREAD_CPUTIME_ID. */ #define _POSIX_THREAD_PRIO_INHERIT __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_THREAD_PRIO_PROTECT __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_VERSION /* Strictly, pthread_attr_getinheritsched/pthread_attr_setinheritsched arrived in 28. */ #define _POSIX_THREAD_PROCESS_SHARED _POSIX_VERSION #define _POSIX_THREAD_ROBUST_PRIO_INHERIT __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_THREAD_ROBUST_PRIO_PROTECT __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_THREAD_SAFE_FUNCTIONS _POSIX_VERSION #define _POSIX_THREAD_SPORADIC_SERVER __BIONIC_POSIX_FEATURE_MISSING /* No SCHED_SPORADIC. */ #define _POSIX_THREADS _POSIX_VERSION /* Strictly, pthread_cancel/pthread_testcancel are missing. */ #define _POSIX_TIMEOUTS __BIONIC_POSIX_FEATURE_SINCE(21) /* pthread_mutex_timedlock arrived late. */ #define _POSIX_TIMERS _POSIX_VERSION /* clock_getres/clock_gettime/clock_settime/nanosleep/timer_create/timer_delete/timer_gettime/timer_getoverrun/timer_settime. */ #define _POSIX_TRACE __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_TRACE_EVENT_FILTER __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_TRACE_INHERIT __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_TRACE_LOG __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_TYPED_MEMORY_OBJECTS __BIONIC_POSIX_FEATURE_MISSING #define _POSIX_VDISABLE '\0' #define _POSIX2_C_BIND _POSIX_VERSION #define _POSIX2_C_DEV __BIONIC_POSIX_FEATURE_MISSING #define _POSIX2_CHAR_TERM _POSIX_VERSION #define _POSIX2_FORT_DEV __BIONIC_POSIX_FEATURE_MISSING #define _POSIX2_FORT_RUN __BIONIC_POSIX_FEATURE_MISSING #define _POSIX2_LOCALEDEF __BIONIC_POSIX_FEATURE_MISSING #define _POSIX2_SW_DEV __BIONIC_POSIX_FEATURE_MISSING #define _POSIX2_UPE __BIONIC_POSIX_FEATURE_MISSING #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 107 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/posix_limits.h" 3 4 #define _POSIX_V7_ILP32_OFF32 (-1) #define _POSIX_V7_ILP32_OFFBIG (-1) #define _POSIX_V7_LP64_OFF64 1 #define _POSIX_V7_LPBIG_OFFBIG 1 #else # 112 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/posix_limits.h" 3 4 #define _POSIX_V7_ILP32_OFF32 1 #define _POSIX_V7_ILP32_OFFBIG (-1) #define _POSIX_V7_LP64_OFF64 (-1) #define _POSIX_V7_LPBIG_OFFBIG (-1) #endif # 117 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/posix_limits.h" 3 4 #define _XOPEN_CRYPT __BIONIC_POSIX_FEATURE_MISSING #define _XOPEN_ENH_I18N 1 #define _XOPEN_LEGACY __BIONIC_POSIX_FEATURE_MISSING #define _XOPEN_REALTIME 1 #define _XOPEN_REALTIME_THREADS 1 #define _XOPEN_SHM 1 #define _XOPEN_STREAMS __BIONIC_POSIX_FEATURE_MISSING #define _XOPEN_UNIX 1 /* Minimum values for other maxima. These numbers are simply lower bounds mandated by POSIX. */ /* The constant values here are explicitly specified by POSIX, not implementation dependent. */ #define _POSIX_AIO_LISTIO_MAX 2 #define _POSIX_AIO_MAX 1 #define _POSIX_ARG_MAX 4096 #define _POSIX_CHILD_MAX 25 #define _POSIX_CLOCKRES_MIN 20000000 #define _POSIX_DELAYTIMER_MAX 32 #define _POSIX_HOST_NAME_MAX 255 #define _POSIX_LINK_MAX 8 #define _POSIX_LOGIN_NAME_MAX 9 #define _POSIX_MAX_CANON 255 #define _POSIX_MAX_INPUT 255 #define _POSIX_MQ_OPEN_MAX 8 #define _POSIX_MQ_PRIO_MAX 32 #define _POSIX_NAME_MAX 14 #define _POSIX_NGROUPS_MAX 8 #define _POSIX_OPEN_MAX 20 #define _POSIX_PATH_MAX 256 #define _POSIX_PIPE_BUF 512 #define _POSIX_RE_DUP_MAX 255 #define _POSIX_RTSIG_MAX 8 #define _POSIX_SEM_NSEMS_MAX 256 #define _POSIX_SEM_VALUE_MAX 32767 #define _POSIX_SIGQUEUE_MAX 32 #define _POSIX_SSIZE_MAX 32767 #define _POSIX_STREAM_MAX 8 #define _POSIX_SS_REPL_MAX 4 #define _POSIX_SYMLINK_MAX 255 #define _POSIX_SYMLOOP_MAX 8 #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 #define _POSIX_THREAD_KEYS_MAX 128 #define _POSIX_THREAD_THREADS_MAX 64 #define _POSIX_TIMER_MAX 32 #define _POSIX_TRACE_EVENT_NAME_MAX 30 #define _POSIX_TRACE_NAME_MAX 8 #define _POSIX_TRACE_SYS_MAX 8 #define _POSIX_TRACE_USER_EVENT_MAX 32 #define _POSIX_TTY_NAME_MAX 9 #define _POSIX_TZNAME_MAX 6 #define _POSIX2_BC_BASE_MAX 99 #define _POSIX2_BC_DIM_MAX 2048 #define _POSIX2_BC_SCALE_MAX 99 #define _POSIX2_BC_STRING_MAX 1000 #define _POSIX2_CHARCLASS_NAME_MAX 14 #define _POSIX2_COLL_WEIGHTS_MAX 2 #define _POSIX2_EXPR_NEST_MAX 32 #define _POSIX2_LINE_MAX 2048 #define _POSIX2_RE_DUP_MAX 255 #define _XOPEN_IOV_MAX 16 #define _XOPEN_NAME_MAX 255 #define _XOPEN_PATH_MAX 1024 #endif # 181 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/posix_limits.h" 3 4 #endif /* posix_limits.h expanded by -frewrite-includes */ # 144 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 2 3 4 #define HOST_NAME_MAX _POSIX_HOST_NAME_MAX #define LOGIN_NAME_MAX 256 #define TTY_NAME_MAX 32 /* >= _POSIX_THREAD_DESTRUCTOR_ITERATIONS */ #define PTHREAD_DESTRUCTOR_ITERATIONS 4 /** * The number of calls to pthread_key_create() without intervening calls to * pthread_key_delete() that are guaranteed to succeed. See pthread_key_create() * for more details and ways to avoid hitting this limit. */ #define PTHREAD_KEYS_MAX 128 /** bionic has no specific limit on the number of threads. */ #undef PTHREAD_THREADS_MAX #endif /* !_LIMITS_H_ */ # 163 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/limits.h" 3 4 #endif /* limits.h expanded by -frewrite-includes */ # 26 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 2 3 4 #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 /* Many system headers try to "help us out" by defining these. No really, we know how big each datatype is. */ #undef SCHAR_MIN #undef SCHAR_MAX #undef UCHAR_MAX #undef SHRT_MIN #undef SHRT_MAX #undef USHRT_MAX #undef INT_MIN #undef INT_MAX #undef UINT_MAX #undef LONG_MIN #undef LONG_MAX #undef ULONG_MAX #undef CHAR_BIT #undef CHAR_MIN #undef CHAR_MAX /* C90/99 5.2.4.2.1 */ #define SCHAR_MAX __SCHAR_MAX__ #define SHRT_MAX __SHRT_MAX__ #define INT_MAX __INT_MAX__ #define LONG_MAX __LONG_MAX__ #define SCHAR_MIN (-__SCHAR_MAX__-1) #define SHRT_MIN (-__SHRT_MAX__ -1) #define INT_MIN (-__INT_MAX__ -1) #define LONG_MIN (-__LONG_MAX__ -1L) #define UCHAR_MAX (__SCHAR_MAX__*2 +1) #if 0 /* disabled by -frewrite-includes */ #if __SHRT_WIDTH__ < __INT_WIDTH__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 60 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #define USHRT_MAX (__SHRT_MAX__ * 2 + 1) #else # 62 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #define USHRT_MAX (__SHRT_MAX__ * 2U + 1U) #endif # 64 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #define UINT_MAX (__INT_MAX__ *2U +1U) #define ULONG_MAX (__LONG_MAX__ *2UL+1UL) #ifndef MB_LEN_MAX #define MB_LEN_MAX 1 #endif # 70 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #define CHAR_BIT __CHAR_BIT__ /* C23 5.2.4.2.1 */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 75 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #define BOOL_WIDTH __BOOL_WIDTH__ #define CHAR_WIDTH CHAR_BIT #define SCHAR_WIDTH CHAR_BIT #define UCHAR_WIDTH CHAR_BIT #define USHRT_WIDTH __SHRT_WIDTH__ #define SHRT_WIDTH __SHRT_WIDTH__ #define UINT_WIDTH __INT_WIDTH__ #define INT_WIDTH __INT_WIDTH__ #define ULONG_WIDTH __LONG_WIDTH__ #define LONG_WIDTH __LONG_WIDTH__ #define ULLONG_WIDTH __LLONG_WIDTH__ #define LLONG_WIDTH __LLONG_WIDTH__ #define BITINT_MAXWIDTH __BITINT_MAXWIDTH__ #endif # 90 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #ifdef __CHAR_UNSIGNED__ /* -funsigned-char */ #define CHAR_MIN 0 #define CHAR_MAX UCHAR_MAX #else # 95 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #define CHAR_MIN SCHAR_MIN #define CHAR_MAX __SCHAR_MAX__ #endif # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 /* C99 5.2.4.2.1: Added long long. C++11 18.3.3.2: same contents as the Standard C Library header . */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #undef LLONG_MIN #undef LLONG_MAX #undef ULLONG_MAX #define LLONG_MAX __LONG_LONG_MAX__ #define LLONG_MIN (-__LONG_LONG_MAX__-1LL) #define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) #endif # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 /* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. It's too bad that we don't have something like #pragma poison that could be used to deprecate a macro - the code should just use LLONG_MAX and friends. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #undef LONG_LONG_MIN #undef LONG_LONG_MAX #undef ULONG_LONG_MAX #define LONG_LONG_MAX __LONG_LONG_MAX__ #define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL) #define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) #endif # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #endif /* __MVS__ */ # 130 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #endif /* __CLANG_LIMITS_H */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/limits.h" 3 4 #endif /* limits.h expanded by -frewrite-includes */ # 20 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 2 3 4 __BEGIN_DECLS /* C11. */ typedef double __double_t; typedef __double_t double_t; typedef float __float_t; typedef __float_t float_t; #define HUGE_VAL __builtin_huge_val() #define HUGE_VALF __builtin_huge_valf() #define HUGE_VALL __builtin_huge_vall() #define INFINITY __builtin_inff() #define NAN __builtin_nanf("") #define FP_INFINITE 0x01 #define FP_NAN 0x02 #define FP_NORMAL 0x04 #define FP_SUBNORMAL 0x08 #define FP_ZERO 0x10 #if 0 /* disabled by -frewrite-includes */ #if defined(__FP_FAST_FMA) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 45 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #define FP_FAST_FMA 1 #endif # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__FP_FAST_FMAF) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #define FP_FAST_FMAF 1 #endif # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__FP_FAST_FMAL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 51 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #define FP_FAST_FMAL 1 #endif # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #define FP_ILOGB0 (-INT_MAX) #define FP_ILOGBNAN INT_MAX #define MATH_ERRNO 1 #define MATH_ERREXCEPT 2 #define math_errhandling MATH_ERREXCEPT #define fpclassify(x) __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, x) #define isfinite(x) __builtin_isfinite(x) #define isinf(x) __builtin_isinf(x) #define isnan(x) __builtin_isnan(x) #define isnormal(x) __builtin_isnormal(x) #define signbit(x) \ ((sizeof(x) == sizeof(float)) ? __builtin_signbitf(x) \ : (sizeof(x) == sizeof(double)) ? __builtin_signbit(x) \ : __builtin_signbitl(x)) double acos(double __x); float acosf(float __x); long double acosl(long double __x); double asin(double __x); float asinf(float __x); long double asinl(long double __x); double atan(double __x); float atanf(float __x); long double atanl(long double __x); double atan2(double __y, double __x); float atan2f(float __y, float __x); long double atan2l(long double __y, long double __x); double cos(double __x); float cosf(float __x); long double cosl(long double __x); double sin(double __x); float sinf(float __x); long double sinl(long double __x); double tan(double __x); float tanf(float __x); long double tanl(long double __x); double acosh(double __x); float acoshf(float __x); long double acoshl(long double __x); double asinh(double __x); float asinhf(float __x); long double asinhl(long double __x); double atanh(double __x); float atanhf(float __x); long double atanhl(long double __x); double cosh(double __x); float coshf(float __x); long double coshl(long double __x); double sinh(double __x); float sinhf(float __x); long double sinhl(long double __x); double tanh(double __x); float tanhf(float __x); long double tanhl(long double __x); double exp(double __x); float expf(float __x); long double expl(long double __x); double exp2(double __x); float exp2f(float __x); long double exp2l(long double __x); double expm1(double __x); float expm1f(float __x); long double expm1l(long double __x); double frexp(double __x, int* _Nonnull __exponent); float frexpf(float __x, int* _Nonnull __exponent); long double frexpl(long double __x, int* _Nonnull __exponent); int ilogb(double __x) __attribute_const__; int ilogbf(float __x) __attribute_const__; int ilogbl(long double __x) __attribute_const__; double ldexp(double __x, int __exponent); float ldexpf(float __x, int __exponent); long double ldexpl(long double __x, int __exponent); double log(double __x); float logf(float __x); long double logl(long double __x); double log10(double __x); float log10f(float __x); long double log10l(long double __x); double log1p(double __x); float log1pf(float __x); long double log1pl(long double __x); double log2(double __x); float log2f(float __x); long double log2l(long double __x); double logb(double __x); float logbf(float __x); long double logbl(long double __x); double modf(double __x, double* _Nonnull __integral_part); float modff(float __x, float* _Nonnull __integral_part); long double modfl(long double __x, long double* _Nonnull __integral_part); double scalbn(double __x, int __exponent); float scalbnf(float __x, int __exponent); long double scalbnl(long double __x, int __exponent); double scalbln(double __x, long __exponent); float scalblnf(float __x, long __exponent); long double scalblnl(long double __x, long __exponent); double cbrt(double __x); float cbrtf(float __x); long double cbrtl(long double __x); double fabs(double __x) __attribute_const__; float fabsf(float __x) __attribute_const__; long double fabsl(long double __x) __attribute_const__; double hypot(double __x, double __y); float hypotf(float __x, float __y); long double hypotl(long double __x, long double __y); double pow(double __x, double __y); float powf(float __x, float __y); long double powl(long double __x, long double __y); double sqrt(double __x); float sqrtf(float __x); long double sqrtl(long double __x); double erf(double __x); float erff(float __x); long double erfl(long double __x); double erfc(double __x); float erfcf(float __x); long double erfcl(long double __x); double lgamma(double __x); float lgammaf(float __x); long double lgammal(long double __x); double tgamma(double __x); float tgammaf(float __x); long double tgammal(long double __x); double ceil(double __x); float ceilf(float __x); long double ceill(long double __x); double floor(double __x); float floorf(float __x); long double floorl(long double __x); double nearbyint(double __x); float nearbyintf(float __x); long double nearbyintl(long double __x); double rint(double __x); float rintf(float __x); long double rintl(long double __x); long lrint(double __x); long lrintf(float __x); long lrintl(long double __x); long long llrint(double __x); long long llrintf(float __x); long long llrintl(long double __x); double round(double __x); float roundf(float __x); long double roundl(long double __x); long lround(double __x); long lroundf(float __x); long lroundl(long double __x); long long llround(double __x); long long llroundf(float __x); long long llroundl(long double __x); double trunc(double __x); float truncf(float __x); long double truncl(long double __x); double fmod(double __x, double __y); float fmodf(float __x, float __y); long double fmodl(long double __x, long double __y); double remainder(double __x, double __y); float remainderf(float __x, float __y); long double remainderl(long double __x, long double __y); double remquo(double __x, double __y, int* _Nonnull __quotient_bits); float remquof(float __x, float __y, int* _Nonnull __quotient_bits); long double remquol(long double __x, long double __y, int* _Nonnull __quotient_bits); double copysign(double __value, double __sign) __attribute_const__; float copysignf(float __value, float __sign) __attribute_const__; long double copysignl(long double __value, long double __sign) __attribute_const__; double nan(const char* _Nonnull __kind) __attribute_const__; float nanf(const char* _Nonnull __kind) __attribute_const__; long double nanl(const char* _Nonnull __kind) __attribute_const__; double nextafter(double __x, double __y); float nextafterf(float __x, float __y); long double nextafterl(long double __x, long double __y); double nexttoward(double __x, long double __y); float nexttowardf(float __x, long double __y); long double nexttowardl(long double __x, long double __y); double fdim(double __x, double __y); float fdimf(float __x, float __y); long double fdiml(long double __x, long double __y); double fmax(double __x, double __y) __attribute_const__; float fmaxf(float __x, float __y) __attribute_const__; long double fmaxl(long double __x, long double __y) __attribute_const__; double fmin(double __x, double __y) __attribute_const__; float fminf(float __x, float __y) __attribute_const__; long double fminl(long double __x, long double __y) __attribute_const__; double fma(double __x, double __y, double __z); float fmaf(float __x, float __y, float __z); long double fmal(long double __x, long double __y, long double __z); #define isgreater(x, y) __builtin_isgreater((x), (y)) #define isgreaterequal(x, y) __builtin_isgreaterequal((x), (y)) #define isless(x, y) __builtin_isless((x), (y)) #define islessequal(x, y) __builtin_islessequal((x), (y)) #define islessgreater(x, y) __builtin_islessgreater((x), (y)) #define isunordered(x, y) __builtin_isunordered((x), (y)) /* * https://code.google.com/p/android/issues/detail?id=271629 * To be fully compliant with C++, we need to not define these (C doesn't * specify them either). Exposing these means that isinf and isnan will have a * return type of int in C++ rather than bool like they're supposed to be. * * GNU libstdc++ 4.9 isn't able to handle a standard compliant C library. Its * will `#undef isnan` from math.h and only adds the function overloads * to the std namespace, making it impossible to use both (which gets * included by a lot of other standard headers) and ::isnan. */ int (isinf)(double __x) __attribute_const__; int (isnan)(double __x) __attribute_const__; /* POSIX extensions. */ extern int signgam; double j0(double __x); double j1(double __x); double jn(int __n, double __x); double y0(double __x); double y1(double __x); double yn(int __n, double __x); #define M_E 2.7182818284590452354 /* e */ #define M_LOG2E 1.4426950408889634074 /* log 2e */ #define M_LOG10E 0.43429448190325182765 /* log 10e */ #define M_LN2 0.69314718055994530942 /* log e2 */ #define M_LN10 2.30258509299404568402 /* log e10 */ #define M_PI 3.14159265358979323846 /* pi */ #define M_PI_2 1.57079632679489661923 /* pi/2 */ #define M_PI_4 0.78539816339744830962 /* pi/4 */ #define M_1_PI 0.31830988618379067154 /* 1/pi */ #define M_2_PI 0.63661977236758134308 /* 2/pi */ #define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ #define MAXFLOAT ((float)3.40282346638528860e+38) /* BSD extensions. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 355 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #define HUGE MAXFLOAT #endif # 357 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 /* Extensions in both BSD and GNU. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) || defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 361 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 double gamma(double __x); double scalb(double __x, double __exponent); double drem(double __x, double __y); int finite(double __x) __attribute_const__; int isnanf(float __x) __attribute_const__; double gamma_r(double __x, int* _Nonnull __sign); double lgamma_r(double __x, int* _Nonnull __sign); double significand(double __x); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 371 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 long double lgammal_r(long double __x, int* _Nonnull __sign) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 373 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 long double significandl(long double __x); float dremf(float __x, float __y); int finitef(float __x) __attribute_const__; float gammaf(float __x); float j0f(float __x); float j1f(float __x); float jnf(int __n, float __x); float scalbf(float __x, float __exponent); float y0f(float __x); float y1f(float __x); float ynf(int __n, float __x); float gammaf_r(float __x, int* _Nonnull __sign); float lgammaf_r(float __x, int* _Nonnull __sign); float significandf(float __x); void sincos(double __x, double* _Nonnull __sin, double* _Nonnull __cos); void sincosf(float __x, float* _Nonnull __sin, float* _Nonnull __cos); void sincosl(long double __x, long double* _Nonnull __sin, long double* _Nonnull __cos); #endif # 392 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 /* GNU extensions. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 396 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 #define M_El 2.718281828459045235360287471352662498L /* e */ #define M_LOG2El 1.442695040888963407359924681001892137L /* log 2e */ #define M_LOG10El 0.434294481903251827651128918916605082L /* log 10e */ #define M_LN2l 0.693147180559945309417232121458176568L /* log e2 */ #define M_LN10l 2.302585092994045684017991454684364208L /* log e10 */ #define M_PIl 3.141592653589793238462643383279502884L /* pi */ #define M_PI_2l 1.570796326794896619231321691639751442L /* pi/2 */ #define M_PI_4l 0.785398163397448309615660845819875721L /* pi/4 */ #define M_1_PIl 0.318309886183790671537767526745028724L /* 1/pi */ #define M_2_PIl 0.636619772367581343075535053490057448L /* 2/pi */ #define M_2_SQRTPIl 1.128379167095512573896158903121545172L /* 2/sqrt(pi) */ #define M_SQRT2l 1.414213562373095048801688724209698079L /* sqrt(2) */ #define M_SQRT1_2l 0.707106781186547524400844362104849039L /* 1/sqrt(2) */ #endif # 410 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/math.h" 3 4 __END_DECLS #endif /* math.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 1 3 4 /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /** * @file assert.h * @brief Assertions. * * There's no include guard in this file because may usefully be * included multiple times, with and without NDEBUG defined. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #undef assert #undef __assert_no_op /** Internal implementation detail. Do not use. */ #define __assert_no_op __BIONIC_CAST(static_cast, void, 0) #ifdef NDEBUG # define assert(e) __assert_no_op #else # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined(__cplusplus) || __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e)) # else # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /** * assert() aborts the program after logging an error message, if the * expression evaluates to false. * * On Android, the error goes to both stderr and logcat. */ # define assert(e) ((e) ? __assert_no_op : __assert(__FILE__, __LINE__, #e)) # endif # 65 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #endif # 66 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /* `static_assert` is a keyword in C++11 and C23; C11 had `_Static_assert` instead. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) && (__STDC_VERSION__ >= 201112L && __STDC_VERSION__ < 202311L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 72 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 __BEGIN_DECLS /** * __assert() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert(const char* _Nonnull __file, int __line, const char* _Nonnull __msg) __noreturn; /** * __assert2() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert2(const char* _Nonnull __file, int __line, const char* _Nonnull __function, const char* _Nonnull __msg) __noreturn; __END_DECLS #endif /* assert.h expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_config.h expanded by -frewrite-includes */ #include "vpx_config.h" #else /* vpx_config.h expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/config/linux/arm-neon/vpx_config.h" 1 /* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */ /* */ /* Use of this source code is governed by a BSD-style license */ /* that can be found in the LICENSE file in the root of the source */ /* tree. An additional intellectual property rights grant can be found */ /* in the file PATENTS. All contributing project authors may */ /* be found in the AUTHORS file in the root of the source tree. */ /* This file automatically generated by configure. Do not edit! */ #ifndef VPX_CONFIG_H #define VPX_CONFIG_H #define RESTRICT #define INLINE inline #define VPX_ARCH_ARM 1 #define ARCH_ARM 1 #define VPX_ARCH_AARCH64 0 #define ARCH_AARCH64 0 #define VPX_ARCH_MIPS 0 #define ARCH_MIPS 0 #define VPX_ARCH_X86 0 #define ARCH_X86 0 #define VPX_ARCH_X86_64 0 #define ARCH_X86_64 0 #define VPX_ARCH_PPC 0 #define ARCH_PPC 0 #define VPX_ARCH_LOONGARCH 0 #define ARCH_LOONGARCH 0 #define HAVE_NEON_ASM 1 #define HAVE_NEON 1 #define HAVE_NEON_DOTPROD 0 #define HAVE_NEON_I8MM 0 #define HAVE_SVE 0 #define HAVE_SVE2 0 #define HAVE_MIPS32 0 #define HAVE_DSPR2 0 #define HAVE_MSA 0 #define HAVE_MIPS64 0 #define HAVE_MMX 0 #define HAVE_SSE 0 #define HAVE_SSE2 0 #define HAVE_SSE3 0 #define HAVE_SSSE3 0 #define HAVE_SSE4_1 0 #define HAVE_AVX 0 #define HAVE_AVX2 0 #define HAVE_AVX512 0 #define HAVE_VSX 0 #define HAVE_MMI 0 #define HAVE_LSX 0 #define HAVE_LASX 0 #define HAVE_VPX_PORTS 1 #define HAVE_PTHREAD_H 1 #define HAVE_UNISTD_H 0 #define CONFIG_DEPENDENCY_TRACKING 1 #define CONFIG_EXTERNAL_BUILD 1 #define CONFIG_INSTALL_DOCS 0 #define CONFIG_INSTALL_BINS 1 #define CONFIG_INSTALL_LIBS 1 #define CONFIG_INSTALL_SRCS 0 #define CONFIG_DEBUG 0 #define CONFIG_GPROF 0 #define CONFIG_GCOV 0 #define CONFIG_RVCT 0 #define CONFIG_GCC 1 #define CONFIG_MSVS 0 #define CONFIG_PIC 0 #define CONFIG_BIG_ENDIAN 0 #define CONFIG_CODEC_SRCS 0 #define CONFIG_DEBUG_LIBS 0 #define CONFIG_DEQUANT_TOKENS 0 #define CONFIG_DC_RECON 0 #define CONFIG_RUNTIME_CPU_DETECT 0 #define CONFIG_POSTPROC 1 #define CONFIG_VP9_POSTPROC 1 #define CONFIG_MULTITHREAD 1 #define CONFIG_INTERNAL_STATS 0 #define CONFIG_VP8_ENCODER 1 #define CONFIG_VP8_DECODER 1 #define CONFIG_VP9_ENCODER 1 #define CONFIG_VP9_DECODER 1 #define CONFIG_VP8 1 #define CONFIG_VP9 1 #define CONFIG_ENCODERS 1 #define CONFIG_DECODERS 1 #define CONFIG_STATIC_MSVCRT 0 #define CONFIG_SPATIAL_RESAMPLING 1 #define CONFIG_REALTIME_ONLY 1 #define CONFIG_ONTHEFLY_BITPACKING 0 #define CONFIG_ERROR_CONCEALMENT 0 #define CONFIG_SHARED 0 #define CONFIG_STATIC 1 #define CONFIG_SMALL 0 #define CONFIG_POSTPROC_VISUALIZER 0 #define CONFIG_OS_SUPPORT 1 #define CONFIG_UNIT_TESTS 1 #define CONFIG_WEBM_IO 1 #define CONFIG_LIBYUV 0 #define CONFIG_DECODE_PERF_TESTS 0 #define CONFIG_ENCODE_PERF_TESTS 0 #define CONFIG_MULTI_RES_ENCODING 1 #define CONFIG_TEMPORAL_DENOISING 1 #define CONFIG_VP9_TEMPORAL_DENOISING 1 #define CONFIG_COEFFICIENT_RANGE_CHECKING 0 #define CONFIG_VP9_HIGHBITDEPTH 0 #define CONFIG_BETTER_HW_COMPATIBILITY 0 #define CONFIG_EXPERIMENTAL 0 #define CONFIG_SIZE_LIMIT 1 #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_BITSTREAM_DEBUG 0 #define CONFIG_MISMATCH_DEBUG 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 #define CONFIG_NON_GREEDY_MV 0 #define CONFIG_RATE_CTRL 0 #define CONFIG_COLLECT_COMPONENT_TIMING 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */ # 118 "../../third_party/libvpx/source/config/linux/arm-neon/vpx_config.h" #endif /* vpx_config.h expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vp8_rtcd.h expanded by -frewrite-includes */ #include "vp8_rtcd.h" #else /* vp8_rtcd.h expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" 1 /* * Copyright (c) 2024 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ // This file is generated. Do not edit. #ifndef VP8_RTCD_H_ #define VP8_RTCD_H_ #ifdef RTCD_C #define RTCD_EXTERN #else # 18 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" #define RTCD_EXTERN extern #endif # 20 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" /* * VP8 */ struct blockd; struct macroblockd; struct loop_filter_info; /* Encoder forward decls */ struct block; struct macroblock; struct variance_vtable; union int_mv; struct yv12_buffer_config; #ifdef __cplusplus extern "C" { #endif # 39 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" void vp8_bilinear_predict16x16_c(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); void vp8_bilinear_predict16x16_neon(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); #define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_neon void vp8_bilinear_predict4x4_c(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); void vp8_bilinear_predict4x4_neon(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); #define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_neon void vp8_bilinear_predict8x4_c(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); void vp8_bilinear_predict8x4_neon(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); #define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_neon void vp8_bilinear_predict8x8_c(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); void vp8_bilinear_predict8x8_neon(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); #define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_neon int vp8_block_error_c(short* coeff, short* dqcoeff); #define vp8_block_error vp8_block_error_c void vp8_copy32xn_c(const unsigned char* src_ptr, int src_stride, unsigned char* dst_ptr, int dst_stride, int height); #define vp8_copy32xn vp8_copy32xn_c void vp8_copy_mem16x16_c(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride); void vp8_copy_mem16x16_neon(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride); #define vp8_copy_mem16x16 vp8_copy_mem16x16_neon void vp8_copy_mem8x4_c(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride); void vp8_copy_mem8x4_neon(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride); #define vp8_copy_mem8x4 vp8_copy_mem8x4_neon void vp8_copy_mem8x8_c(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride); void vp8_copy_mem8x8_neon(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride); #define vp8_copy_mem8x8 vp8_copy_mem8x8_neon void vp8_dc_only_idct_add_c(short input_dc, unsigned char* pred_ptr, int pred_stride, unsigned char* dst_ptr, int dst_stride); void vp8_dc_only_idct_add_neon(short input_dc, unsigned char* pred_ptr, int pred_stride, unsigned char* dst_ptr, int dst_stride); #define vp8_dc_only_idct_add vp8_dc_only_idct_add_neon int vp8_denoiser_filter_c(unsigned char* mc_running_avg_y, int mc_avg_y_stride, unsigned char* running_avg_y, int avg_y_stride, unsigned char* sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising); int vp8_denoiser_filter_neon(unsigned char* mc_running_avg_y, int mc_avg_y_stride, unsigned char* running_avg_y, int avg_y_stride, unsigned char* sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising); #define vp8_denoiser_filter vp8_denoiser_filter_neon int vp8_denoiser_filter_uv_c(unsigned char* mc_running_avg, int mc_avg_stride, unsigned char* running_avg, int avg_stride, unsigned char* sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising); int vp8_denoiser_filter_uv_neon(unsigned char* mc_running_avg, int mc_avg_stride, unsigned char* running_avg, int avg_stride, unsigned char* sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising); #define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_neon void vp8_dequant_idct_add_c(short* input, short* dq, unsigned char* dest, int stride); void vp8_dequant_idct_add_neon(short* input, short* dq, unsigned char* dest, int stride); #define vp8_dequant_idct_add vp8_dequant_idct_add_neon void vp8_dequant_idct_add_uv_block_c(short* q, short* dq, unsigned char* dst_u, unsigned char* dst_v, int stride, char* eobs); void vp8_dequant_idct_add_uv_block_neon(short* q, short* dq, unsigned char* dst_u, unsigned char* dst_v, int stride, char* eobs); #define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_neon void vp8_dequant_idct_add_y_block_c(short* q, short* dq, unsigned char* dst, int stride, char* eobs); void vp8_dequant_idct_add_y_block_neon(short* q, short* dq, unsigned char* dst, int stride, char* eobs); #define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_neon void vp8_dequantize_b_c(struct blockd*, short* DQC); void vp8_dequantize_b_neon(struct blockd*, short* DQC); #define vp8_dequantize_b vp8_dequantize_b_neon int vp8_diamond_search_sad_c(struct macroblock* x, struct block* b, struct blockd* d, union int_mv* ref_mv, union int_mv* best_mv, int search_param, int sad_per_bit, int* num00, struct variance_vtable* fn_ptr, int* mvcost[2], union int_mv* center_mv); #define vp8_diamond_search_sad vp8_diamond_search_sad_c void vp8_fast_quantize_b_c(struct block*, struct blockd*); void vp8_fast_quantize_b_neon(struct block*, struct blockd*); #define vp8_fast_quantize_b vp8_fast_quantize_b_neon void vp8_filter_by_weight16x16_c(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride, int src_weight); #define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c void vp8_filter_by_weight4x4_c(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride, int src_weight); #define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c void vp8_filter_by_weight8x8_c(unsigned char* src, int src_stride, unsigned char* dst, int dst_stride, int src_weight); #define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c void vp8_loop_filter_bh_c(unsigned char* y_ptr, unsigned char* u_ptr, unsigned char* v_ptr, int y_stride, int uv_stride, struct loop_filter_info* lfi); void vp8_loop_filter_bh_neon(unsigned char* y_ptr, unsigned char* u_ptr, unsigned char* v_ptr, int y_stride, int uv_stride, struct loop_filter_info* lfi); #define vp8_loop_filter_bh vp8_loop_filter_bh_neon void vp8_loop_filter_bv_c(unsigned char* y_ptr, unsigned char* u_ptr, unsigned char* v_ptr, int y_stride, int uv_stride, struct loop_filter_info* lfi); void vp8_loop_filter_bv_neon(unsigned char* y_ptr, unsigned char* u_ptr, unsigned char* v_ptr, int y_stride, int uv_stride, struct loop_filter_info* lfi); #define vp8_loop_filter_bv vp8_loop_filter_bv_neon void vp8_loop_filter_mbh_c(unsigned char* y_ptr, unsigned char* u_ptr, unsigned char* v_ptr, int y_stride, int uv_stride, struct loop_filter_info* lfi); void vp8_loop_filter_mbh_neon(unsigned char* y_ptr, unsigned char* u_ptr, unsigned char* v_ptr, int y_stride, int uv_stride, struct loop_filter_info* lfi); #define vp8_loop_filter_mbh vp8_loop_filter_mbh_neon void vp8_loop_filter_mbv_c(unsigned char* y_ptr, unsigned char* u_ptr, unsigned char* v_ptr, int y_stride, int uv_stride, struct loop_filter_info* lfi); void vp8_loop_filter_mbv_neon(unsigned char* y_ptr, unsigned char* u_ptr, unsigned char* v_ptr, int y_stride, int uv_stride, struct loop_filter_info* lfi); #define vp8_loop_filter_mbv vp8_loop_filter_mbv_neon void vp8_loop_filter_bhs_c(unsigned char* y_ptr, int y_stride, const unsigned char* blimit); void vp8_loop_filter_bhs_neon(unsigned char* y_ptr, int y_stride, const unsigned char* blimit); #define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_neon void vp8_loop_filter_bvs_c(unsigned char* y_ptr, int y_stride, const unsigned char* blimit); void vp8_loop_filter_bvs_neon(unsigned char* y_ptr, int y_stride, const unsigned char* blimit); #define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_neon void vp8_loop_filter_simple_horizontal_edge_c(unsigned char* y_ptr, int y_stride, const unsigned char* blimit); void vp8_loop_filter_mbhs_neon(unsigned char* y_ptr, int y_stride, const unsigned char* blimit); #define vp8_loop_filter_simple_mbh vp8_loop_filter_mbhs_neon void vp8_loop_filter_simple_vertical_edge_c(unsigned char* y_ptr, int y_stride, const unsigned char* blimit); void vp8_loop_filter_mbvs_neon(unsigned char* y_ptr, int y_stride, const unsigned char* blimit); #define vp8_loop_filter_simple_mbv vp8_loop_filter_mbvs_neon int vp8_mbblock_error_c(struct macroblock* mb, int dc); #define vp8_mbblock_error vp8_mbblock_error_c int vp8_mbuverror_c(struct macroblock* mb); #define vp8_mbuverror vp8_mbuverror_c int vp8_refining_search_sad_c(struct macroblock* x, struct block* b, struct blockd* d, union int_mv* ref_mv, int error_per_bit, int search_range, struct variance_vtable* fn_ptr, int* mvcost[2], union int_mv* center_mv); #define vp8_refining_search_sad vp8_refining_search_sad_c void vp8_regular_quantize_b_c(struct block*, struct blockd*); #define vp8_regular_quantize_b vp8_regular_quantize_b_c void vp8_short_fdct4x4_c(short* input, short* output, int pitch); void vp8_short_fdct4x4_neon(short* input, short* output, int pitch); #define vp8_short_fdct4x4 vp8_short_fdct4x4_neon void vp8_short_fdct8x4_c(short* input, short* output, int pitch); void vp8_short_fdct8x4_neon(short* input, short* output, int pitch); #define vp8_short_fdct8x4 vp8_short_fdct8x4_neon void vp8_short_idct4x4llm_c(short* input, unsigned char* pred_ptr, int pred_stride, unsigned char* dst_ptr, int dst_stride); void vp8_short_idct4x4llm_neon(short* input, unsigned char* pred_ptr, int pred_stride, unsigned char* dst_ptr, int dst_stride); #define vp8_short_idct4x4llm vp8_short_idct4x4llm_neon void vp8_short_inv_walsh4x4_c(short* input, short* mb_dqcoeff); void vp8_short_inv_walsh4x4_neon(short* input, short* mb_dqcoeff); #define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_neon void vp8_short_inv_walsh4x4_1_c(short* input, short* mb_dqcoeff); #define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c void vp8_short_walsh4x4_c(short* input, short* output, int pitch); void vp8_short_walsh4x4_neon(short* input, short* output, int pitch); #define vp8_short_walsh4x4 vp8_short_walsh4x4_neon void vp8_sixtap_predict16x16_c(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); void vp8_sixtap_predict16x16_neon(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); #define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_neon void vp8_sixtap_predict4x4_c(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); void vp8_sixtap_predict4x4_neon(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); #define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_neon void vp8_sixtap_predict8x4_c(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); void vp8_sixtap_predict8x4_neon(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); #define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_neon void vp8_sixtap_predict8x8_c(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); void vp8_sixtap_predict8x8_neon(unsigned char* src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char* dst_ptr, int dst_pitch); #define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_neon void vp8_rtcd(void); #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 459 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" # 460 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" #ifdef RTCD_C #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/arm.h" #endif /* expanded by -frewrite-includes */ # 462 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" # 463 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" static void setup_rtcd_internal(void) { int flags = arm_cpu_caps(); (void)flags; } #endif # 469 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" #ifdef __cplusplus } // extern "C" #endif # 473 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" #endif # 475 "../../third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h" #endif /* vp8_rtcd.h expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_dsp_rtcd.h expanded by -frewrite-includes */ #include "./vpx_dsp_rtcd.h" #else /* vpx_dsp_rtcd.h expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" 1 /* * Copyright (c) 2024 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ // This file is generated. Do not edit. #ifndef VPX_DSP_RTCD_H_ #define VPX_DSP_RTCD_H_ #ifdef RTCD_C #define RTCD_EXTERN #else # 18 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" #define RTCD_EXTERN extern #endif # 20 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" /* * DSP */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_integer.h expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #else /* vpx_integer.h expanded by -frewrite-includes */ # 25 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_VPX_INTEGER_H_ #define VPX_VPX_VPX_INTEGER_H_ /* get ptrdiff_t, size_t, wchar_t, NULL */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include // IWYU pragma: export #else /* stddef.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" 2 #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #define VPX_FORCE_INLINE __forceinline #define VPX_INLINE __inline #else # 21 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #define VPX_FORCE_INLINE __inline__ __attribute__((always_inline)) // TODO(jbb): Allow a way to force inline off for older compilers. #define VPX_INLINE inline #endif # 25 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" /* Assume platforms have the C99 standard integer types. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 29 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDC_FORMAT_MACROS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #define __STDC_FORMAT_MACROS #endif # 32 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDC_LIMIT_MACROS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #define __STDC_LIMIT_MACROS #endif # 35 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #endif // __cplusplus # 36 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* inttypes.h expanded by -frewrite-includes */ #include // IWYU pragma: export #else /* inttypes.h expanded by -frewrite-includes */ # 37 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 1 3 /*===---- inttypes.h - Standard header for integer printf macros ----------===*\ * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * \*===----------------------------------------------------------------------===*/ #ifndef __CLANG_INTTYPES_H // AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T // is defined until an inclusion of it without _STD_TYPES_T occurs, in which // case the header guard macro is defined. #if 0 /* disabled by -frewrite-includes */ #if !defined(_AIX) || !defined(_STD_TYPES_T) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #define __CLANG_INTTYPES_H #endif # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 17 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 17 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #else # 19 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) && _MSC_VER < 1800 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #error MSVC does not have inttypes.h prior to Visual Studio 2013 #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* inttypes.h expanded by -frewrite-includes */ #include_next #else /* inttypes.h expanded by -frewrite-includes */ # 24 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/inttypes.h" 1 3 4 /* $OpenBSD: inttypes.h,v 1.9 2006/01/15 00:47:51 millert Exp $ */ /* * Copyright (c) 1997, 2005 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _INTTYPES_H_ #define _INTTYPES_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 22 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/inttypes.h" 3 4 # 23 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/inttypes.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 23 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/inttypes.h" 3 4 # 24 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/inttypes.h" 3 4 #ifdef __LP64__ #define __PRI_64_prefix "l" #define __PRI_PTR_prefix "l" #else # 29 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/inttypes.h" 3 4 #define __PRI_64_prefix "ll" #define __PRI_PTR_prefix #endif # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/inttypes.h" 3 4 #define __PRI_FAST_prefix __PRI_PTR_prefix /* * 7.8.1 Macros for format specifiers * * Each of the following object-like macros expands to a string * literal containing a conversion specifier, possibly modified by * a prefix such as hh, h, l, or ll, suitable for use within the * format argument of a formatted input/output function when * converting the corresponding integer type. These macro names * have the general form of PRI (character string literals for the * fprintf family) or SCN (character string literals for the fscanf * family), followed by the conversion specifier, followed by a * name corresponding to a similar typedef name. For example, * PRIdFAST32 can be used in a format string to print the value of * an integer of type int_fast32_t. */ /* fprintf macros for signed integers */ #define PRId8 "d" /* int8_t */ #define PRId16 "d" /* int16_t */ #define PRId32 "d" /* int32_t */ #define PRId64 __PRI_64_prefix"d" /* int64_t */ #define PRIdLEAST8 "d" /* int_least8_t */ #define PRIdLEAST16 "d" /* int_least16_t */ #define PRIdLEAST32 "d" /* int_least32_t */ #define PRIdLEAST64 __PRI_64_prefix"d" /* int_least64_t */ #define PRIdFAST8 "d" /* int_fast8_t */ #define PRIdFAST16 __PRI_FAST_prefix"d" /* int_fast16_t */ #define PRIdFAST32 __PRI_FAST_prefix"d" /* int_fast32_t */ #define PRIdFAST64 __PRI_64_prefix"d" /* int_fast64_t */ #define PRIdMAX "jd" /* intmax_t */ #define PRIdPTR __PRI_PTR_prefix"d" /* intptr_t */ #define PRIi8 "i" /* int8_t */ #define PRIi16 "i" /* int16_t */ #define PRIi32 "i" /* int32_t */ #define PRIi64 __PRI_64_prefix"i" /* int64_t */ #define PRIiLEAST8 "i" /* int_least8_t */ #define PRIiLEAST16 "i" /* int_least16_t */ #define PRIiLEAST32 "i" /* int_least32_t */ #define PRIiLEAST64 __PRI_64_prefix"i" /* int_least64_t */ #define PRIiFAST8 "i" /* int_fast8_t */ #define PRIiFAST16 __PRI_FAST_prefix"i" /* int_fast16_t */ #define PRIiFAST32 __PRI_FAST_prefix"i" /* int_fast32_t */ #define PRIiFAST64 __PRI_64_prefix"i" /* int_fast64_t */ #define PRIiMAX "ji" /* intmax_t */ #define PRIiPTR __PRI_PTR_prefix"i" /* intptr_t */ /* fprintf macros for unsigned integers */ #define PRIb8 "b" /* int8_t */ #define PRIb16 "b" /* int16_t */ #define PRIb32 "b" /* int32_t */ #define PRIb64 __PRI_64_prefix"b" /* int64_t */ #define PRIbLEAST8 "b" /* int_least8_t */ #define PRIbLEAST16 "b" /* int_least16_t */ #define PRIbLEAST32 "b" /* int_least32_t */ #define PRIbLEAST64 __PRI_64_prefix"b" /* int_least64_t */ #define PRIbFAST8 "b" /* int_fast8_t */ #define PRIbFAST16 __PRI_FAST_prefix"b" /* int_fast16_t */ #define PRIbFAST32 __PRI_FAST_prefix"b" /* int_fast32_t */ #define PRIbFAST64 __PRI_64_prefix"b" /* int_fast64_t */ #define PRIbMAX "jb" /* intmax_t */ #define PRIbPTR __PRI_PTR_prefix"b" /* intptr_t */ #define PRIB8 "B" /* int8_t */ #define PRIB16 "B" /* int16_t */ #define PRIB32 "B" /* int32_t */ #define PRIB64 __PRI_64_prefix"B" /* int64_t */ #define PRIBLEAST8 "B" /* int_least8_t */ #define PRIBLEAST16 "B" /* int_least16_t */ #define PRIBLEAST32 "B" /* int_least32_t */ #define PRIBLEAST64 __PRI_64_prefix"B" /* int_least64_t */ #define PRIBFAST8 "B" /* int_fast8_t */ #define PRIBFAST16 __PRI_FAST_prefix"B" /* int_fast16_t */ #define PRIBFAST32 __PRI_FAST_prefix"B" /* int_fast32_t */ #define PRIBFAST64 __PRI_64_prefix"B" /* int_fast64_t */ #define PRIBMAX "jB" /* intmax_t */ #define PRIBPTR __PRI_PTR_prefix"B" /* intptr_t */ #define PRIo8 "o" /* int8_t */ #define PRIo16 "o" /* int16_t */ #define PRIo32 "o" /* int32_t */ #define PRIo64 __PRI_64_prefix"o" /* int64_t */ #define PRIoLEAST8 "o" /* int_least8_t */ #define PRIoLEAST16 "o" /* int_least16_t */ #define PRIoLEAST32 "o" /* int_least32_t */ #define PRIoLEAST64 __PRI_64_prefix"o" /* int_least64_t */ #define PRIoFAST8 "o" /* int_fast8_t */ #define PRIoFAST16 __PRI_FAST_prefix"o" /* int_fast16_t */ #define PRIoFAST32 __PRI_FAST_prefix"o" /* int_fast32_t */ #define PRIoFAST64 __PRI_64_prefix"o" /* int_fast64_t */ #define PRIoMAX "jo" /* intmax_t */ #define PRIoPTR __PRI_PTR_prefix"o" /* intptr_t */ #define PRIu8 "u" /* uint8_t */ #define PRIu16 "u" /* uint16_t */ #define PRIu32 "u" /* uint32_t */ #define PRIu64 __PRI_64_prefix"u" /* uint64_t */ #define PRIuLEAST8 "u" /* uint_least8_t */ #define PRIuLEAST16 "u" /* uint_least16_t */ #define PRIuLEAST32 "u" /* uint_least32_t */ #define PRIuLEAST64 __PRI_64_prefix"u" /* uint_least64_t */ #define PRIuFAST8 "u" /* uint_fast8_t */ #define PRIuFAST16 __PRI_FAST_prefix"u" /* uint_fast16_t */ #define PRIuFAST32 __PRI_FAST_prefix"u" /* uint_fast32_t */ #define PRIuFAST64 __PRI_64_prefix"u" /* uint_fast64_t */ #define PRIuMAX "ju" /* uintmax_t */ #define PRIuPTR __PRI_PTR_prefix"u" /* uintptr_t */ #define PRIx8 "x" /* uint8_t */ #define PRIx16 "x" /* uint16_t */ #define PRIx32 "x" /* uint32_t */ #define PRIx64 __PRI_64_prefix"x" /* uint64_t */ #define PRIxLEAST8 "x" /* uint_least8_t */ #define PRIxLEAST16 "x" /* uint_least16_t */ #define PRIxLEAST32 "x" /* uint_least32_t */ #define PRIxLEAST64 __PRI_64_prefix"x" /* uint_least64_t */ #define PRIxFAST8 "x" /* uint_fast8_t */ #define PRIxFAST16 __PRI_FAST_prefix"x" /* uint_fast16_t */ #define PRIxFAST32 __PRI_FAST_prefix"x" /* uint_fast32_t */ #define PRIxFAST64 __PRI_64_prefix"x" /* uint_fast64_t */ #define PRIxMAX "jx" /* uintmax_t */ #define PRIxPTR __PRI_PTR_prefix"x" /* uintptr_t */ #define PRIX8 "X" /* uint8_t */ #define PRIX16 "X" /* uint16_t */ #define PRIX32 "X" /* uint32_t */ #define PRIX64 __PRI_64_prefix"X" /* uint64_t */ #define PRIXLEAST8 "X" /* uint_least8_t */ #define PRIXLEAST16 "X" /* uint_least16_t */ #define PRIXLEAST32 "X" /* uint_least32_t */ #define PRIXLEAST64 __PRI_64_prefix"X" /* uint_least64_t */ #define PRIXFAST8 "X" /* uint_fast8_t */ #define PRIXFAST16 __PRI_FAST_prefix"X" /* uint_fast16_t */ #define PRIXFAST32 __PRI_FAST_prefix"X" /* uint_fast32_t */ #define PRIXFAST64 __PRI_64_prefix"X" /* uint_fast64_t */ #define PRIXMAX "jX" /* uintmax_t */ #define PRIXPTR __PRI_PTR_prefix"X" /* uintptr_t */ /* fscanf macros for signed integers */ #define SCNd8 "hhd" /* int8_t */ #define SCNd16 "hd" /* int16_t */ #define SCNd32 "d" /* int32_t */ #define SCNd64 __PRI_64_prefix"d" /* int64_t */ #define SCNdLEAST8 "hhd" /* int_least8_t */ #define SCNdLEAST16 "hd" /* int_least16_t */ #define SCNdLEAST32 "d" /* int_least32_t */ #define SCNdLEAST64 __PRI_64_prefix"d" /* int_least64_t */ #define SCNdFAST8 "hhd" /* int_fast8_t */ #define SCNdFAST16 __PRI_FAST_prefix"d" /* int_fast16_t */ #define SCNdFAST32 __PRI_FAST_prefix"d" /* int_fast32_t */ #define SCNdFAST64 __PRI_64_prefix"d" /* int_fast64_t */ #define SCNdMAX "jd" /* intmax_t */ #define SCNdPTR __PRI_PTR_prefix"d" /* intptr_t */ #define SCNi8 "hhi" /* int8_t */ #define SCNi16 "hi" /* int16_t */ #define SCNi32 "i" /* int32_t */ #define SCNi64 __PRI_64_prefix"i" /* int64_t */ #define SCNiLEAST8 "hhi" /* int_least8_t */ #define SCNiLEAST16 "hi" /* int_least16_t */ #define SCNiLEAST32 "i" /* int_least32_t */ #define SCNiLEAST64 __PRI_64_prefix"i" /* int_least64_t */ #define SCNiFAST8 "hhi" /* int_fast8_t */ #define SCNiFAST16 __PRI_FAST_prefix"i" /* int_fast16_t */ #define SCNiFAST32 __PRI_FAST_prefix"i" /* int_fast32_t */ #define SCNiFAST64 __PRI_64_prefix"i" /* int_fast64_t */ #define SCNiMAX "ji" /* intmax_t */ #define SCNiPTR __PRI_PTR_prefix"i" /* intptr_t */ /* fscanf macros for unsigned integers */ #define SCNb8 "hhb" /* uint8_t */ #define SCNb16 "hb" /* uint16_t */ #define SCNb32 "b" /* uint32_t */ #define SCNb64 __PRI_64_prefix"b" /* uint64_t */ #define SCNbLEAST8 "hhb" /* uint_least8_t */ #define SCNbLEAST16 "hb" /* uint_least16_t */ #define SCNbLEAST32 "b" /* uint_least32_t */ #define SCNbLEAST64 __PRI_64_prefix"b" /* uint_least64_t */ #define SCNbFAST8 "hhb" /* uint_fast8_t */ #define SCNbFAST16 __PRI_FAST_prefix"b" /* uint_fast16_t */ #define SCNbFAST32 __PRI_FAST_prefix"b" /* uint_fast32_t */ #define SCNbFAST64 __PRI_64_prefix"b" /* uint_fast64_t */ #define SCNbMAX "jb" /* uintmax_t */ #define SCNbPTR __PRI_PTR_prefix"b" /* uintptr_t */ #define SCNB8 "hhB" /* uint8_t */ #define SCNB16 "hB" /* uint16_t */ #define SCNB32 "B" /* uint32_t */ #define SCNB64 __PRI_64_prefix"B" /* uint64_t */ #define SCNBLEAST8 "hhB" /* uint_least8_t */ #define SCNBLEAST16 "hB" /* uint_least16_t */ #define SCNBLEAST32 "B" /* uint_least32_t */ #define SCNBLEAST64 __PRI_64_prefix"B" /* uint_least64_t */ #define SCNBFAST8 "hhB" /* uint_fast8_t */ #define SCNBFAST16 __PRI_FAST_prefix"B" /* uint_fast16_t */ #define SCNBFAST32 __PRI_FAST_prefix"B" /* uint_fast32_t */ #define SCNBFAST64 __PRI_64_prefix"B" /* uint_fast64_t */ #define SCNBMAX "jB" /* uintmax_t */ #define SCNBPTR __PRI_PTR_prefix"B" /* uintptr_t */ #define SCNo8 "hho" /* uint8_t */ #define SCNo16 "ho" /* uint16_t */ #define SCNo32 "o" /* uint32_t */ #define SCNo64 __PRI_64_prefix"o" /* uint64_t */ #define SCNoLEAST8 "hho" /* uint_least8_t */ #define SCNoLEAST16 "ho" /* uint_least16_t */ #define SCNoLEAST32 "o" /* uint_least32_t */ #define SCNoLEAST64 __PRI_64_prefix"o" /* uint_least64_t */ #define SCNoFAST8 "hho" /* uint_fast8_t */ #define SCNoFAST16 __PRI_FAST_prefix"o" /* uint_fast16_t */ #define SCNoFAST32 __PRI_FAST_prefix"o" /* uint_fast32_t */ #define SCNoFAST64 __PRI_64_prefix"o" /* uint_fast64_t */ #define SCNoMAX "jo" /* uintmax_t */ #define SCNoPTR __PRI_PTR_prefix"o" /* uintptr_t */ #define SCNu8 "hhu" /* uint8_t */ #define SCNu16 "hu" /* uint16_t */ #define SCNu32 "u" /* uint32_t */ #define SCNu64 __PRI_64_prefix"u" /* uint64_t */ #define SCNuLEAST8 "hhu" /* uint_least8_t */ #define SCNuLEAST16 "hu" /* uint_least16_t */ #define SCNuLEAST32 "u" /* uint_least32_t */ #define SCNuLEAST64 __PRI_64_prefix"u" /* uint_least64_t */ #define SCNuFAST8 "hhu" /* uint_fast8_t */ #define SCNuFAST16 __PRI_FAST_prefix"u" /* uint_fast16_t */ #define SCNuFAST32 __PRI_FAST_prefix"u" /* uint_fast32_t */ #define SCNuFAST64 __PRI_64_prefix"u" /* uint_fast64_t */ #define SCNuMAX "ju" /* uintmax_t */ #define SCNuPTR __PRI_PTR_prefix"u" /* uintptr_t */ #define SCNx8 "hhx" /* uint8_t */ #define SCNx16 "hx" /* uint16_t */ #define SCNx32 "x" /* uint32_t */ #define SCNx64 __PRI_64_prefix"x" /* uint64_t */ #define SCNxLEAST8 "hhx" /* uint_least8_t */ #define SCNxLEAST16 "hx" /* uint_least16_t */ #define SCNxLEAST32 "x" /* uint_least32_t */ #define SCNxLEAST64 __PRI_64_prefix"x" /* uint_least64_t */ #define SCNxFAST8 "hhx" /* uint_fast8_t */ #define SCNxFAST16 __PRI_FAST_prefix"x" /* uint_fast16_t */ #define SCNxFAST32 __PRI_FAST_prefix"x" /* uint_fast32_t */ #define SCNxFAST64 __PRI_64_prefix"x" /* uint_fast64_t */ #define SCNxMAX "jx" /* uintmax_t */ #define SCNxPTR __PRI_PTR_prefix"x" /* uintptr_t */ typedef struct { intmax_t quot; /* quotient */ intmax_t rem; /* remainder */ } imaxdiv_t; __BEGIN_DECLS intmax_t imaxabs(intmax_t __i) __attribute_const__; imaxdiv_t imaxdiv(intmax_t __numerator, intmax_t __denominator) __attribute_const__; intmax_t strtoimax(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base); uintmax_t strtoumax(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base); intmax_t wcstoimax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base); uintmax_t wcstoumax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base); __END_DECLS #endif # 339 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/inttypes.h" 3 4 #endif /* inttypes.h expanded by -frewrite-includes */ # 25 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 2 3 #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) && _MSC_VER < 1900 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 /* MSVC headers define int32_t as int, but PRIx32 as "lx" instead of "x". * This triggers format warnings, so fix it up here. */ #undef PRId32 #undef PRIdLEAST32 #undef PRIdFAST32 #undef PRIi32 #undef PRIiLEAST32 #undef PRIiFAST32 #undef PRIo32 #undef PRIoLEAST32 #undef PRIoFAST32 #undef PRIu32 #undef PRIuLEAST32 #undef PRIuFAST32 #undef PRIx32 #undef PRIxLEAST32 #undef PRIxFAST32 #undef PRIX32 #undef PRIXLEAST32 #undef PRIXFAST32 #undef SCNd32 #undef SCNdLEAST32 #undef SCNdFAST32 #undef SCNi32 #undef SCNiLEAST32 #undef SCNiFAST32 #undef SCNo32 #undef SCNoLEAST32 #undef SCNoFAST32 #undef SCNu32 #undef SCNuLEAST32 #undef SCNuFAST32 #undef SCNx32 #undef SCNxLEAST32 #undef SCNxFAST32 #define PRId32 "d" #define PRIdLEAST32 "d" #define PRIdFAST32 "d" #define PRIi32 "i" #define PRIiLEAST32 "i" #define PRIiFAST32 "i" #define PRIo32 "o" #define PRIoLEAST32 "o" #define PRIoFAST32 "o" #define PRIu32 "u" #define PRIuLEAST32 "u" #define PRIuFAST32 "u" #define PRIx32 "x" #define PRIxLEAST32 "x" #define PRIxFAST32 "x" #define PRIX32 "X" #define PRIXLEAST32 "X" #define PRIXFAST32 "X" #define SCNd32 "d" #define SCNdLEAST32 "d" #define SCNdFAST32 "d" #define SCNi32 "i" #define SCNiLEAST32 "i" #define SCNiFAST32 "i" #define SCNo32 "o" #define SCNoLEAST32 "o" #define SCNoFAST32 "o" #define SCNu32 "u" #define SCNuLEAST32 "u" #define SCNuFAST32 "u" #define SCNx32 "x" #define SCNxLEAST32 "x" #define SCNxFAST32 "x" #endif # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #endif /* __MVS__ */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #endif /* __CLANG_INTTYPES_H */ # 102 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/inttypes.h" 3 #endif /* inttypes.h expanded by -frewrite-includes */ # 38 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" 2 #if 0 /* expanded by -frewrite-includes */ #include // IWYU pragma: export #endif /* expanded by -frewrite-includes */ # 38 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" # 39 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #endif // VPX_VPX_VPX_INTEGER_H_ # 41 "../../third_party/libvpx/source/libvpx/vpx/vpx_integer.h" #endif /* vpx_integer.h expanded by -frewrite-includes */ # 26 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_dsp_common.h expanded by -frewrite-includes */ #include "vpx_dsp/vpx_dsp_common.h" #else /* vpx_dsp_common.h expanded by -frewrite-includes */ # 26 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" # 1 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" 1 /* * Copyright (c) 2015 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_DSP_VPX_DSP_COMMON_H_ #define VPX_VPX_DSP_VPX_DSP_COMMON_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" # 15 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" # 16 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* mem.h expanded by -frewrite-includes */ #include "vpx_ports/mem.h" #else /* mem.h expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" # 1 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_PORTS_MEM_H_ #define VPX_VPX_PORTS_MEM_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" # 15 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" # 16 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #if 0 /* disabled by -frewrite-includes */ #if (defined(__GNUC__) && __GNUC__) || defined(__SUNPRO_C) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #define DECLARE_ALIGNED(n, typ, val) typ val __attribute__((aligned(n))) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #define DECLARE_ALIGNED(n, typ, val) __declspec(align(n)) typ val #else # 22 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #warning No alignment directives known for this compiler. #define DECLARE_ALIGNED(n, typ, val) typ val #endif # 25 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__has_builtin) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 27 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #define VPX_HAS_BUILTIN(x) __has_builtin(x) #else # 29 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #define VPX_HAS_BUILTIN(x) 0 #endif # 31 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #if 0 /* disabled by -frewrite-includes */ #if !VPX_HAS_BUILTIN(__builtin_prefetch) && !defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #define __builtin_prefetch(x) #endif # 35 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" /* Shift down with rounding */ #define ROUND_POWER_OF_TWO(value, n) (((value) + (1 << ((n)-1))) >> (n)) #define ROUND64_POWER_OF_TWO(value, n) (((value) + (1ULL << ((n)-1))) >> (n)) #define ALIGN_POWER_OF_TWO(value, n) \ (((value) + ((1 << (n)) - 1)) & ~((1 << (n)) - 1)) #define CONVERT_TO_SHORTPTR(x) ((uint16_t *)(((uintptr_t)(x)) << 1)) #define CAST_TO_SHORTPTR(x) ((uint16_t *)((uintptr_t)(x))) #if 0 /* disabled by -frewrite-includes */ #if CONFIG_VP9_HIGHBITDEPTH #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 46 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #define CONVERT_TO_BYTEPTR(x) ((uint8_t *)(((uintptr_t)(x)) >> 1)) #define CAST_TO_BYTEPTR(x) ((uint8_t *)((uintptr_t)(x))) #endif // CONFIG_VP9_HIGHBITDEPTH # 49 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #endif // VPX_VPX_PORTS_MEM_H_ # 51 "../../third_party/libvpx/source/libvpx/vpx_ports/mem.h" #endif /* mem.h expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" 2 #ifdef __cplusplus extern "C" { #endif # 21 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" #define VPXMIN(x, y) (((x) < (y)) ? (x) : (y)) #define VPXMAX(x, y) (((x) > (y)) ? (x) : (y)) #define VPX_SWAP(type, a, b) \ do { \ type c = (b); \ (b) = a; \ (a) = c; \ } while (0) #if 0 /* disabled by -frewrite-includes */ #if CONFIG_VP9_HIGHBITDEPTH #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" // Note: // tran_low_t is the datatype used for final transform coefficients. // tran_high_t is the datatype used for intermediate transform stages. typedef int64_t tran_high_t; typedef int32_t tran_low_t; #else # 39 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" // Note: // tran_low_t is the datatype used for final transform coefficients. // tran_high_t is the datatype used for intermediate transform stages. typedef int32_t tran_high_t; typedef int16_t tran_low_t; #endif // CONFIG_VP9_HIGHBITDEPTH # 45 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" typedef int16_t tran_coef_t; // Visual Studio 2022 (cl.exe) targeting AArch64 with optimizations enabled // produces invalid code for clip_pixel() when the return type is uint8_t. // See: // https://developercommunity.visualstudio.com/t/Misoptimization-for-ARM64-in-VS-2022-17/10363361 // TODO(jzern): check the compiler version after a fix for the issue is // released. #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) && defined(_M_ARM64) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 55 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" static INLINE int clip_pixel(int val) { return (val > 255) ? 255 : (val < 0) ? 0 : val; } #else # 59 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" static INLINE uint8_t clip_pixel(int val) { return (val > 255) ? 255 : (val < 0) ? 0 : val; } #endif # 63 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" static INLINE int clamp(int value, int low, int high) { return value < low ? low : (value > high ? high : value); } static INLINE double fclamp(double value, double low, double high) { return value < low ? low : (value > high ? high : value); } static INLINE int64_t lclamp(int64_t value, int64_t low, int64_t high) { return value < low ? low : (value > high ? high : value); } static INLINE uint16_t clip_pixel_highbd(int val, int bd) { switch (bd) { case 8: default: return (uint16_t)clamp(val, 0, 255); case 10: return (uint16_t)clamp(val, 0, 1023); case 12: return (uint16_t)clamp(val, 0, 4095); } } #ifdef __cplusplus } // extern "C" #endif # 88 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" #endif // VPX_VPX_DSP_VPX_DSP_COMMON_H_ # 90 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h" #endif /* vpx_dsp_common.h expanded by -frewrite-includes */ # 27 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_filter.h expanded by -frewrite-includes */ #include "vpx_dsp/vpx_filter.h" #else /* vpx_filter.h expanded by -frewrite-includes */ # 27 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" # 1 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h" 1 /* * Copyright (c) 2015 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_DSP_VPX_FILTER_H_ #define VPX_VPX_DSP_VPX_FILTER_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 1 3 4 /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /** * @file assert.h * @brief Assertions. * * There's no include guard in this file because may usefully be * included multiple times, with and without NDEBUG defined. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #undef assert #undef __assert_no_op /** Internal implementation detail. Do not use. */ #define __assert_no_op __BIONIC_CAST(static_cast, void, 0) #ifdef NDEBUG # define assert(e) __assert_no_op #else # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined(__cplusplus) || __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e)) # else # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /** * assert() aborts the program after logging an error message, if the * expression evaluates to false. * * On Android, the error goes to both stderr and logcat. */ # define assert(e) ((e) ? __assert_no_op : __assert(__FILE__, __LINE__, #e)) # endif # 65 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #endif # 66 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /* `static_assert` is a keyword in C++11 and C23; C11 had `_Static_assert` instead. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) && (__STDC_VERSION__ >= 201112L && __STDC_VERSION__ < 202311L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 72 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 __BEGIN_DECLS /** * __assert() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert(const char* _Nonnull __file, int __line, const char* _Nonnull __msg) __noreturn; /** * __assert2() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert2(const char* _Nonnull __file, int __line, const char* _Nonnull __function, const char* _Nonnull __msg) __noreturn; __END_DECLS #endif /* assert.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h" # 16 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h" #ifdef __cplusplus extern "C" { #endif # 20 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h" #define FILTER_BITS 7 #define SUBPEL_BITS 4 #define SUBPEL_MASK ((1 << SUBPEL_BITS) - 1) #define SUBPEL_SHIFTS (1 << SUBPEL_BITS) #define SUBPEL_TAPS 8 typedef int16_t InterpKernel[SUBPEL_TAPS]; static INLINE int vpx_get_filter_taps(const int16_t *const filter) { if (filter[0] | filter[7]) { return 8; } if (filter[1] | filter[6]) { return 6; } if (filter[2] | filter[5]) { return 4; } return 2; } #ifdef __cplusplus } // extern "C" #endif # 46 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h" #endif // VPX_VPX_DSP_VPX_FILTER_H_ # 48 "../../third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h" #endif /* vpx_filter.h expanded by -frewrite-includes */ # 28 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" 2 #if 0 /* disabled by -frewrite-includes */ #if CONFIG_VP9_ENCODER #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 29 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" struct macroblock_plane; struct ScanOrder; #endif # 32 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" #ifdef __cplusplus extern "C" { #endif # 36 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" unsigned int vpx_avg_4x4_c(const uint8_t*, int p); unsigned int vpx_avg_4x4_neon(const uint8_t*, int p); #define vpx_avg_4x4 vpx_avg_4x4_neon unsigned int vpx_avg_8x8_c(const uint8_t*, int p); unsigned int vpx_avg_8x8_neon(const uint8_t*, int p); #define vpx_avg_8x8 vpx_avg_8x8_neon void vpx_comp_avg_pred_c(uint8_t* comp_pred, const uint8_t* pred, int width, int height, const uint8_t* ref, int ref_stride); void vpx_comp_avg_pred_neon(uint8_t* comp_pred, const uint8_t* pred, int width, int height, const uint8_t* ref, int ref_stride); #define vpx_comp_avg_pred vpx_comp_avg_pred_neon void vpx_convolve8_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_convolve8_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_convolve8 vpx_convolve8_neon void vpx_convolve8_avg_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_convolve8_avg_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_convolve8_avg vpx_convolve8_avg_neon void vpx_convolve8_avg_horiz_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_convolve8_avg_horiz_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_convolve8_avg_horiz vpx_convolve8_avg_horiz_neon void vpx_convolve8_avg_vert_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_convolve8_avg_vert_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_convolve8_avg_vert vpx_convolve8_avg_vert_neon void vpx_convolve8_horiz_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_convolve8_horiz_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_convolve8_horiz vpx_convolve8_horiz_neon void vpx_convolve8_vert_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_convolve8_vert_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_convolve8_vert vpx_convolve8_vert_neon void vpx_convolve_avg_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_convolve_avg_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_convolve_avg vpx_convolve_avg_neon void vpx_convolve_copy_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_convolve_copy_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_convolve_copy vpx_convolve_copy_neon void vpx_d117_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d117_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_neon void vpx_d117_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d117_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_neon void vpx_d117_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d117_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_neon void vpx_d117_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d117_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_neon void vpx_d135_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d135_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_neon void vpx_d135_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d135_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_neon void vpx_d135_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d135_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_neon void vpx_d135_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d135_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_neon void vpx_d153_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d153_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_neon void vpx_d153_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d153_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_neon void vpx_d153_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d153_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_neon void vpx_d153_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d153_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_neon void vpx_d207_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d207_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_neon void vpx_d207_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d207_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_neon void vpx_d207_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d207_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_neon void vpx_d207_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d207_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_neon void vpx_d45_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d45_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_neon void vpx_d45_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d45_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_neon void vpx_d45_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d45_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_neon void vpx_d45_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d45_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_neon void vpx_d45e_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c void vpx_d63_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d63_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_neon void vpx_d63_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d63_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_neon void vpx_d63_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d63_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_neon void vpx_d63_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_d63_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_neon void vpx_d63e_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c void vpx_dc_128_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_128_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_neon void vpx_dc_128_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_128_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_neon void vpx_dc_128_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_128_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_neon void vpx_dc_128_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_128_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_neon void vpx_dc_left_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_left_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_neon void vpx_dc_left_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_left_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_neon void vpx_dc_left_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_left_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_neon void vpx_dc_left_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_left_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_neon void vpx_dc_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_predictor_16x16 vpx_dc_predictor_16x16_neon void vpx_dc_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_neon void vpx_dc_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_neon void vpx_dc_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_predictor_8x8 vpx_dc_predictor_8x8_neon void vpx_dc_top_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_top_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_neon void vpx_dc_top_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_top_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_neon void vpx_dc_top_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_top_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_neon void vpx_dc_top_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_dc_top_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_neon void vpx_fdct16x16_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct16x16_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct16x16 vpx_fdct16x16_neon void vpx_fdct16x16_1_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct16x16_1_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct16x16_1 vpx_fdct16x16_1_neon void vpx_fdct32x32_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct32x32_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct32x32 vpx_fdct32x32_neon void vpx_fdct32x32_1_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct32x32_1_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct32x32_1 vpx_fdct32x32_1_neon void vpx_fdct32x32_rd_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct32x32_rd_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct32x32_rd vpx_fdct32x32_rd_neon void vpx_fdct4x4_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct4x4_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct4x4 vpx_fdct4x4_neon void vpx_fdct4x4_1_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct4x4_1_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct4x4_1 vpx_fdct4x4_1_neon void vpx_fdct8x8_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct8x8_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct8x8 vpx_fdct8x8_neon void vpx_fdct8x8_1_c(const int16_t* input, tran_low_t* output, int stride); void vpx_fdct8x8_1_neon(const int16_t* input, tran_low_t* output, int stride); #define vpx_fdct8x8_1 vpx_fdct8x8_1_neon void vpx_get16x16var_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse, int* sum); void vpx_get16x16var_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse, int* sum); #define vpx_get16x16var vpx_get16x16var_neon unsigned int vpx_get4x4sse_cs_c(const unsigned char* src_ptr, int src_stride, const unsigned char* ref_ptr, int ref_stride); unsigned int vpx_get4x4sse_cs_neon(const unsigned char* src_ptr, int src_stride, const unsigned char* ref_ptr, int ref_stride); #define vpx_get4x4sse_cs vpx_get4x4sse_cs_neon void vpx_get8x8var_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse, int* sum); void vpx_get8x8var_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse, int* sum); #define vpx_get8x8var vpx_get8x8var_neon unsigned int vpx_get_mb_ss_c(const int16_t*); #define vpx_get_mb_ss vpx_get_mb_ss_c void vpx_h_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_h_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_h_predictor_16x16 vpx_h_predictor_16x16_neon void vpx_h_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_h_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_h_predictor_32x32 vpx_h_predictor_32x32_neon void vpx_h_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_h_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_h_predictor_4x4 vpx_h_predictor_4x4_neon void vpx_h_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_h_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_h_predictor_8x8 vpx_h_predictor_8x8_neon void vpx_hadamard_16x16_c(const int16_t* src_diff, ptrdiff_t src_stride, int16_t* coeff); void vpx_hadamard_16x16_neon(const int16_t* src_diff, ptrdiff_t src_stride, int16_t* coeff); #define vpx_hadamard_16x16 vpx_hadamard_16x16_neon void vpx_hadamard_32x32_c(const int16_t* src_diff, ptrdiff_t src_stride, int16_t* coeff); void vpx_hadamard_32x32_neon(const int16_t* src_diff, ptrdiff_t src_stride, int16_t* coeff); #define vpx_hadamard_32x32 vpx_hadamard_32x32_neon void vpx_hadamard_8x8_c(const int16_t* src_diff, ptrdiff_t src_stride, int16_t* coeff); void vpx_hadamard_8x8_neon(const int16_t* src_diff, ptrdiff_t src_stride, int16_t* coeff); #define vpx_hadamard_8x8 vpx_hadamard_8x8_neon void vpx_he_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c void vpx_idct16x16_10_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct16x16_10_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct16x16_10_add vpx_idct16x16_10_add_neon void vpx_idct16x16_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct16x16_1_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct16x16_1_add vpx_idct16x16_1_add_neon void vpx_idct16x16_256_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct16x16_256_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct16x16_256_add vpx_idct16x16_256_add_neon void vpx_idct16x16_38_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct16x16_38_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct16x16_38_add vpx_idct16x16_38_add_neon void vpx_idct32x32_1024_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct32x32_1024_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct32x32_1024_add vpx_idct32x32_1024_add_neon void vpx_idct32x32_135_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct32x32_135_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct32x32_135_add vpx_idct32x32_135_add_neon void vpx_idct32x32_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct32x32_1_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct32x32_1_add vpx_idct32x32_1_add_neon void vpx_idct32x32_34_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct32x32_34_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct32x32_34_add vpx_idct32x32_34_add_neon void vpx_idct4x4_16_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct4x4_16_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct4x4_16_add vpx_idct4x4_16_add_neon void vpx_idct4x4_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct4x4_1_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct4x4_1_add vpx_idct4x4_1_add_neon void vpx_idct8x8_12_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct8x8_12_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct8x8_12_add vpx_idct8x8_12_add_neon void vpx_idct8x8_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct8x8_1_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct8x8_1_add vpx_idct8x8_1_add_neon void vpx_idct8x8_64_add_c(const tran_low_t* input, uint8_t* dest, int stride); void vpx_idct8x8_64_add_neon(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_idct8x8_64_add vpx_idct8x8_64_add_neon int16_t vpx_int_pro_col_c(const uint8_t* ref, const int width); int16_t vpx_int_pro_col_neon(const uint8_t* ref, const int width); #define vpx_int_pro_col vpx_int_pro_col_neon void vpx_int_pro_row_c(int16_t hbuf[16], const uint8_t* ref, const int ref_stride, const int height); void vpx_int_pro_row_neon(int16_t hbuf[16], const uint8_t* ref, const int ref_stride, const int height); #define vpx_int_pro_row vpx_int_pro_row_neon void vpx_iwht4x4_16_add_c(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c void vpx_iwht4x4_1_add_c(const tran_low_t* input, uint8_t* dest, int stride); #define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c void vpx_lpf_horizontal_16_c(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); void vpx_lpf_horizontal_16_neon(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); #define vpx_lpf_horizontal_16 vpx_lpf_horizontal_16_neon void vpx_lpf_horizontal_16_dual_c(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); void vpx_lpf_horizontal_16_dual_neon(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); #define vpx_lpf_horizontal_16_dual vpx_lpf_horizontal_16_dual_neon void vpx_lpf_horizontal_4_c(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); void vpx_lpf_horizontal_4_neon(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); #define vpx_lpf_horizontal_4 vpx_lpf_horizontal_4_neon void vpx_lpf_horizontal_4_dual_c(uint8_t* s, int pitch, const uint8_t* blimit0, const uint8_t* limit0, const uint8_t* thresh0, const uint8_t* blimit1, const uint8_t* limit1, const uint8_t* thresh1); void vpx_lpf_horizontal_4_dual_neon(uint8_t* s, int pitch, const uint8_t* blimit0, const uint8_t* limit0, const uint8_t* thresh0, const uint8_t* blimit1, const uint8_t* limit1, const uint8_t* thresh1); #define vpx_lpf_horizontal_4_dual vpx_lpf_horizontal_4_dual_neon void vpx_lpf_horizontal_8_c(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); void vpx_lpf_horizontal_8_neon(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); #define vpx_lpf_horizontal_8 vpx_lpf_horizontal_8_neon void vpx_lpf_horizontal_8_dual_c(uint8_t* s, int pitch, const uint8_t* blimit0, const uint8_t* limit0, const uint8_t* thresh0, const uint8_t* blimit1, const uint8_t* limit1, const uint8_t* thresh1); void vpx_lpf_horizontal_8_dual_neon(uint8_t* s, int pitch, const uint8_t* blimit0, const uint8_t* limit0, const uint8_t* thresh0, const uint8_t* blimit1, const uint8_t* limit1, const uint8_t* thresh1); #define vpx_lpf_horizontal_8_dual vpx_lpf_horizontal_8_dual_neon void vpx_lpf_vertical_16_c(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); void vpx_lpf_vertical_16_neon(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); #define vpx_lpf_vertical_16 vpx_lpf_vertical_16_neon void vpx_lpf_vertical_16_dual_c(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); void vpx_lpf_vertical_16_dual_neon(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); #define vpx_lpf_vertical_16_dual vpx_lpf_vertical_16_dual_neon void vpx_lpf_vertical_4_c(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); void vpx_lpf_vertical_4_neon(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); #define vpx_lpf_vertical_4 vpx_lpf_vertical_4_neon void vpx_lpf_vertical_4_dual_c(uint8_t* s, int pitch, const uint8_t* blimit0, const uint8_t* limit0, const uint8_t* thresh0, const uint8_t* blimit1, const uint8_t* limit1, const uint8_t* thresh1); void vpx_lpf_vertical_4_dual_neon(uint8_t* s, int pitch, const uint8_t* blimit0, const uint8_t* limit0, const uint8_t* thresh0, const uint8_t* blimit1, const uint8_t* limit1, const uint8_t* thresh1); #define vpx_lpf_vertical_4_dual vpx_lpf_vertical_4_dual_neon void vpx_lpf_vertical_8_c(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); void vpx_lpf_vertical_8_neon(uint8_t* s, int pitch, const uint8_t* blimit, const uint8_t* limit, const uint8_t* thresh); #define vpx_lpf_vertical_8 vpx_lpf_vertical_8_neon void vpx_lpf_vertical_8_dual_c(uint8_t* s, int pitch, const uint8_t* blimit0, const uint8_t* limit0, const uint8_t* thresh0, const uint8_t* blimit1, const uint8_t* limit1, const uint8_t* thresh1); void vpx_lpf_vertical_8_dual_neon(uint8_t* s, int pitch, const uint8_t* blimit0, const uint8_t* limit0, const uint8_t* thresh0, const uint8_t* blimit1, const uint8_t* limit1, const uint8_t* thresh1); #define vpx_lpf_vertical_8_dual vpx_lpf_vertical_8_dual_neon void vpx_mbpost_proc_across_ip_c(unsigned char* src, int pitch, int rows, int cols, int flimit); void vpx_mbpost_proc_across_ip_neon(unsigned char* src, int pitch, int rows, int cols, int flimit); #define vpx_mbpost_proc_across_ip vpx_mbpost_proc_across_ip_neon void vpx_mbpost_proc_down_c(unsigned char* dst, int pitch, int rows, int cols, int flimit); void vpx_mbpost_proc_down_neon(unsigned char* dst, int pitch, int rows, int cols, int flimit); #define vpx_mbpost_proc_down vpx_mbpost_proc_down_neon void vpx_minmax_8x8_c(const uint8_t* s, int p, const uint8_t* d, int dp, int* min, int* max); void vpx_minmax_8x8_neon(const uint8_t* s, int p, const uint8_t* d, int dp, int* min, int* max); #define vpx_minmax_8x8 vpx_minmax_8x8_neon unsigned int vpx_mse16x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_mse16x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_mse16x16 vpx_mse16x16_neon unsigned int vpx_mse16x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_mse16x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_mse16x8 vpx_mse16x8_neon unsigned int vpx_mse8x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_mse8x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_mse8x16 vpx_mse8x16_neon unsigned int vpx_mse8x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_mse8x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_mse8x8 vpx_mse8x8_neon void vpx_plane_add_noise_c(uint8_t* start, const int8_t* noise, int blackclamp, int whiteclamp, int width, int height, int pitch); #define vpx_plane_add_noise vpx_plane_add_noise_c void vpx_post_proc_down_and_across_mb_row_c(unsigned char* src, unsigned char* dst, int src_pitch, int dst_pitch, int cols, unsigned char* flimits, int size); void vpx_post_proc_down_and_across_mb_row_neon(unsigned char* src, unsigned char* dst, int src_pitch, int dst_pitch, int cols, unsigned char* flimits, int size); #define vpx_post_proc_down_and_across_mb_row \ vpx_post_proc_down_and_across_mb_row_neon void vpx_quantize_b_c(const tran_low_t* coeff_ptr, intptr_t n_coeffs, const struct macroblock_plane* const mb_plane, tran_low_t* qcoeff_ptr, tran_low_t* dqcoeff_ptr, const int16_t* dequant_ptr, uint16_t* eob_ptr, const struct ScanOrder* const scan_order); void vpx_quantize_b_neon(const tran_low_t* coeff_ptr, intptr_t n_coeffs, const struct macroblock_plane* const mb_plane, tran_low_t* qcoeff_ptr, tran_low_t* dqcoeff_ptr, const int16_t* dequant_ptr, uint16_t* eob_ptr, const struct ScanOrder* const scan_order); #define vpx_quantize_b vpx_quantize_b_neon void vpx_quantize_b_32x32_c(const tran_low_t* coeff_ptr, const struct macroblock_plane* const mb_plane, tran_low_t* qcoeff_ptr, tran_low_t* dqcoeff_ptr, const int16_t* dequant_ptr, uint16_t* eob_ptr, const struct ScanOrder* const scan_order); void vpx_quantize_b_32x32_neon(const tran_low_t* coeff_ptr, const struct macroblock_plane* const mb_plane, tran_low_t* qcoeff_ptr, tran_low_t* dqcoeff_ptr, const int16_t* dequant_ptr, uint16_t* eob_ptr, const struct ScanOrder* const scan_order); #define vpx_quantize_b_32x32 vpx_quantize_b_32x32_neon unsigned int vpx_sad16x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad16x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad16x16 vpx_sad16x16_neon unsigned int vpx_sad16x16_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad16x16_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad16x16_avg vpx_sad16x16_avg_neon void vpx_sad16x16x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad16x16x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad16x16x4d vpx_sad16x16x4d_neon unsigned int vpx_sad16x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad16x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad16x32 vpx_sad16x32_neon unsigned int vpx_sad16x32_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad16x32_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad16x32_avg vpx_sad16x32_avg_neon void vpx_sad16x32x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad16x32x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad16x32x4d vpx_sad16x32x4d_neon unsigned int vpx_sad16x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad16x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad16x8 vpx_sad16x8_neon unsigned int vpx_sad16x8_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad16x8_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad16x8_avg vpx_sad16x8_avg_neon void vpx_sad16x8x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad16x8x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad16x8x4d vpx_sad16x8x4d_neon unsigned int vpx_sad32x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad32x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad32x16 vpx_sad32x16_neon unsigned int vpx_sad32x16_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad32x16_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad32x16_avg vpx_sad32x16_avg_neon void vpx_sad32x16x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad32x16x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad32x16x4d vpx_sad32x16x4d_neon unsigned int vpx_sad32x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad32x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad32x32 vpx_sad32x32_neon unsigned int vpx_sad32x32_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad32x32_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad32x32_avg vpx_sad32x32_avg_neon void vpx_sad32x32x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad32x32x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad32x32x4d vpx_sad32x32x4d_neon unsigned int vpx_sad32x64_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad32x64_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad32x64 vpx_sad32x64_neon unsigned int vpx_sad32x64_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad32x64_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad32x64_avg vpx_sad32x64_avg_neon void vpx_sad32x64x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad32x64x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad32x64x4d vpx_sad32x64x4d_neon unsigned int vpx_sad4x4_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad4x4_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad4x4 vpx_sad4x4_neon unsigned int vpx_sad4x4_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad4x4_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad4x4_avg vpx_sad4x4_avg_neon void vpx_sad4x4x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad4x4x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad4x4x4d vpx_sad4x4x4d_neon unsigned int vpx_sad4x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad4x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad4x8 vpx_sad4x8_neon unsigned int vpx_sad4x8_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad4x8_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad4x8_avg vpx_sad4x8_avg_neon void vpx_sad4x8x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad4x8x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad4x8x4d vpx_sad4x8x4d_neon unsigned int vpx_sad64x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad64x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad64x32 vpx_sad64x32_neon unsigned int vpx_sad64x32_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad64x32_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad64x32_avg vpx_sad64x32_avg_neon void vpx_sad64x32x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad64x32x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad64x32x4d vpx_sad64x32x4d_neon unsigned int vpx_sad64x64_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad64x64_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad64x64 vpx_sad64x64_neon unsigned int vpx_sad64x64_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad64x64_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad64x64_avg vpx_sad64x64_avg_neon void vpx_sad64x64x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad64x64x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad64x64x4d vpx_sad64x64x4d_neon unsigned int vpx_sad8x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad8x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad8x16 vpx_sad8x16_neon unsigned int vpx_sad8x16_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad8x16_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad8x16_avg vpx_sad8x16_avg_neon void vpx_sad8x16x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad8x16x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad8x16x4d vpx_sad8x16x4d_neon unsigned int vpx_sad8x4_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad8x4_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad8x4 vpx_sad8x4_neon unsigned int vpx_sad8x4_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad8x4_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad8x4_avg vpx_sad8x4_avg_neon void vpx_sad8x4x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad8x4x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad8x4x4d vpx_sad8x4x4d_neon unsigned int vpx_sad8x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad8x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad8x8 vpx_sad8x8_neon unsigned int vpx_sad8x8_avg_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); unsigned int vpx_sad8x8_avg_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, const uint8_t* second_pred); #define vpx_sad8x8_avg vpx_sad8x8_avg_neon void vpx_sad8x8x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad8x8x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad8x8x4d vpx_sad8x8x4d_neon unsigned int vpx_sad_skip_16x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_16x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_16x16 vpx_sad_skip_16x16_neon void vpx_sad_skip_16x16x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_16x16x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_16x16x4d vpx_sad_skip_16x16x4d_neon unsigned int vpx_sad_skip_16x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_16x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_16x32 vpx_sad_skip_16x32_neon void vpx_sad_skip_16x32x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_16x32x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_16x32x4d vpx_sad_skip_16x32x4d_neon unsigned int vpx_sad_skip_16x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_16x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_16x8 vpx_sad_skip_16x8_neon void vpx_sad_skip_16x8x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_16x8x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_16x8x4d vpx_sad_skip_16x8x4d_neon unsigned int vpx_sad_skip_32x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_32x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_32x16 vpx_sad_skip_32x16_neon void vpx_sad_skip_32x16x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_32x16x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_32x16x4d vpx_sad_skip_32x16x4d_neon unsigned int vpx_sad_skip_32x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_32x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_32x32 vpx_sad_skip_32x32_neon void vpx_sad_skip_32x32x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_32x32x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_32x32x4d vpx_sad_skip_32x32x4d_neon unsigned int vpx_sad_skip_32x64_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_32x64_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_32x64 vpx_sad_skip_32x64_neon void vpx_sad_skip_32x64x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_32x64x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_32x64x4d vpx_sad_skip_32x64x4d_neon unsigned int vpx_sad_skip_4x4_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_4x4_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_4x4 vpx_sad_skip_4x4_neon void vpx_sad_skip_4x4x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_4x4x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_4x4x4d vpx_sad_skip_4x4x4d_neon unsigned int vpx_sad_skip_4x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_4x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_4x8 vpx_sad_skip_4x8_neon void vpx_sad_skip_4x8x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_4x8x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_4x8x4d vpx_sad_skip_4x8x4d_neon unsigned int vpx_sad_skip_64x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_64x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_64x32 vpx_sad_skip_64x32_neon void vpx_sad_skip_64x32x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_64x32x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_64x32x4d vpx_sad_skip_64x32x4d_neon unsigned int vpx_sad_skip_64x64_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_64x64_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_64x64 vpx_sad_skip_64x64_neon void vpx_sad_skip_64x64x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_64x64x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_64x64x4d vpx_sad_skip_64x64x4d_neon unsigned int vpx_sad_skip_8x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_8x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_8x16 vpx_sad_skip_8x16_neon void vpx_sad_skip_8x16x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_8x16x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_8x16x4d vpx_sad_skip_8x16x4d_neon unsigned int vpx_sad_skip_8x4_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_8x4_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_8x4 vpx_sad_skip_8x4_neon void vpx_sad_skip_8x4x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_8x4x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_8x4x4d vpx_sad_skip_8x4x4d_neon unsigned int vpx_sad_skip_8x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); unsigned int vpx_sad_skip_8x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride); #define vpx_sad_skip_8x8 vpx_sad_skip_8x8_neon void vpx_sad_skip_8x8x4d_c(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); void vpx_sad_skip_8x8x4d_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* const ref_array[4], int ref_stride, uint32_t sad_array[4]); #define vpx_sad_skip_8x8x4d vpx_sad_skip_8x8x4d_neon int vpx_satd_c(const int16_t* coeff, int length); int vpx_satd_neon(const int16_t* coeff, int length); #define vpx_satd vpx_satd_neon void vpx_scaled_2d_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); void vpx_scaled_2d_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_scaled_2d vpx_scaled_2d_neon void vpx_scaled_avg_2d_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_scaled_avg_2d vpx_scaled_avg_2d_c void vpx_scaled_avg_horiz_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c void vpx_scaled_avg_vert_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_scaled_avg_vert vpx_scaled_avg_vert_c void vpx_scaled_horiz_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_scaled_horiz vpx_scaled_horiz_c void vpx_scaled_vert_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h); #define vpx_scaled_vert vpx_scaled_vert_c int64_t vpx_sse_c(const uint8_t* src, int src_stride, const uint8_t* ref, int ref_stride, int width, int height); int64_t vpx_sse_neon(const uint8_t* src, int src_stride, const uint8_t* ref, int ref_stride, int width, int height); #define vpx_sse vpx_sse_neon uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance16x16_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_neon uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance16x32_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_neon uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance16x8_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_neon uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance32x16_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_neon uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance32x32_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_neon uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance32x64_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_neon uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance4x4_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_neon uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance4x8_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_neon uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance64x32_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_neon uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance64x64_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance64x64 vpx_sub_pixel_avg_variance64x64_neon uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance8x16_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_neon uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance8x4_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_neon uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); uint32_t vpx_sub_pixel_avg_variance8x8_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse, const uint8_t* second_pred); #define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_neon uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance16x16_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance16x16 vpx_sub_pixel_variance16x16_neon uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance16x32_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_neon uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance16x8_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_neon uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance32x16_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_neon uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance32x32_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance32x32 vpx_sub_pixel_variance32x32_neon uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance32x64_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_neon uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance4x4_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_neon uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance4x8_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_neon uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance64x32_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_neon uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance64x64_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_neon uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance8x16_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_neon uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance8x4_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_neon uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); uint32_t vpx_sub_pixel_variance8x8_neon(const uint8_t* src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t* ref_ptr, int ref_stride, uint32_t* sse); #define vpx_sub_pixel_variance8x8 vpx_sub_pixel_variance8x8_neon void vpx_subtract_block_c(int rows, int cols, int16_t* diff_ptr, ptrdiff_t diff_stride, const uint8_t* src_ptr, ptrdiff_t src_stride, const uint8_t* pred_ptr, ptrdiff_t pred_stride); void vpx_subtract_block_neon(int rows, int cols, int16_t* diff_ptr, ptrdiff_t diff_stride, const uint8_t* src_ptr, ptrdiff_t src_stride, const uint8_t* pred_ptr, ptrdiff_t pred_stride); #define vpx_subtract_block vpx_subtract_block_neon uint64_t vpx_sum_squares_2d_i16_c(const int16_t* src, int stride, int size); uint64_t vpx_sum_squares_2d_i16_neon(const int16_t* src, int stride, int size); #define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_neon void vpx_tm_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_tm_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_neon void vpx_tm_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_tm_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_neon void vpx_tm_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_tm_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_neon void vpx_tm_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_tm_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_neon void vpx_v_predictor_16x16_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_v_predictor_16x16_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_v_predictor_16x16 vpx_v_predictor_16x16_neon void vpx_v_predictor_32x32_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_v_predictor_32x32_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_v_predictor_32x32 vpx_v_predictor_32x32_neon void vpx_v_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_v_predictor_4x4_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_v_predictor_4x4 vpx_v_predictor_4x4_neon void vpx_v_predictor_8x8_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); void vpx_v_predictor_8x8_neon(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_v_predictor_8x8 vpx_v_predictor_8x8_neon unsigned int vpx_variance16x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance16x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance16x16 vpx_variance16x16_neon unsigned int vpx_variance16x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance16x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance16x32 vpx_variance16x32_neon unsigned int vpx_variance16x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance16x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance16x8 vpx_variance16x8_neon unsigned int vpx_variance32x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance32x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance32x16 vpx_variance32x16_neon unsigned int vpx_variance32x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance32x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance32x32 vpx_variance32x32_neon unsigned int vpx_variance32x64_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance32x64_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance32x64 vpx_variance32x64_neon unsigned int vpx_variance4x4_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance4x4_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance4x4 vpx_variance4x4_neon unsigned int vpx_variance4x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance4x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance4x8 vpx_variance4x8_neon unsigned int vpx_variance64x32_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance64x32_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance64x32 vpx_variance64x32_neon unsigned int vpx_variance64x64_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance64x64_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance64x64 vpx_variance64x64_neon unsigned int vpx_variance8x16_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance8x16_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance8x16 vpx_variance8x16_neon unsigned int vpx_variance8x4_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance8x4_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance8x4 vpx_variance8x4_neon unsigned int vpx_variance8x8_c(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); unsigned int vpx_variance8x8_neon(const uint8_t* src_ptr, int src_stride, const uint8_t* ref_ptr, int ref_stride, unsigned int* sse); #define vpx_variance8x8 vpx_variance8x8_neon void vpx_ve_predictor_4x4_c(uint8_t* dst, ptrdiff_t stride, const uint8_t* above, const uint8_t* left); #define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c int vpx_vector_var_c(const int16_t* ref, const int16_t* src, const int bwl); int vpx_vector_var_neon(const int16_t* ref, const int16_t* src, const int bwl); #define vpx_vector_var vpx_vector_var_neon void vpx_dsp_rtcd(void); #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 2773 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" # 2774 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" #ifdef RTCD_C #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/arm.h" #endif /* expanded by -frewrite-includes */ # 2776 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" # 2777 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" static void setup_rtcd_internal(void) { int flags = arm_cpu_caps(); (void)flags; } #endif # 2783 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" #ifdef __cplusplus } // extern "C" #endif # 2787 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" #endif # 2789 "../../third_party/libvpx/source/config/linux/arm-neon/./vpx_dsp_rtcd.h" #endif /* vpx_dsp_rtcd.h expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* encodeframe.h expanded by -frewrite-includes */ #include "encodeframe.h" #else /* encodeframe.h expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h" 1 /* * Copyright (c) 2012 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_ENCODEFRAME_H_ #define VPX_VP8_ENCODER_ENCODEFRAME_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* tokenize.h expanded by -frewrite-includes */ #include "vp8/encoder/tokenize.h" #else /* tokenize.h expanded by -frewrite-includes */ # 13 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_TOKENIZE_H_ #define VPX_VP8_ENCODER_TOKENIZE_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* entropy.h expanded by -frewrite-includes */ #include "vp8/common/entropy.h" #else /* entropy.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/entropy.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_ENTROPY_H_ #define VPX_VP8_COMMON_ENTROPY_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* treecoder.h expanded by -frewrite-includes */ #include "treecoder.h" #else /* treecoder.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/entropy.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/treecoder.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_TREECODER_H_ #define VPX_VP8_COMMON_TREECODER_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vp8/common/treecoder.h" typedef unsigned char vp8bc_index_t; /* probability index */ typedef unsigned char vp8_prob; #define vp8_prob_half ((vp8_prob)128) typedef signed char vp8_tree_index; struct bool_coder_spec; typedef struct bool_coder_spec bool_coder_spec; typedef struct bool_writer bool_writer; typedef struct bool_reader bool_reader; typedef const bool_coder_spec c_bool_coder_spec; typedef const bool_writer c_bool_writer; typedef const bool_reader c_bool_reader; #define vp8_complement(x) (255 - (x)) /* We build coding trees compactly in arrays. Each node of the tree is a pair of vp8_tree_indices. Array index often references a corresponding probability table. Index <= 0 means done encoding/decoding and value = -Index, Index > 0 means need another bit, specification at index. Nonnegative indices are always even; processing begins at node 0. */ typedef const vp8_tree_index vp8_tree[], *vp8_tree_p; typedef const struct vp8_token_struct { int value; int Len; } vp8_token; /* Construct encoding array from tree. */ void vp8_tokens_from_tree(struct vp8_token_struct *, vp8_tree); void vp8_tokens_from_tree_offset(struct vp8_token_struct *, vp8_tree, int offset); /* Convert array of token occurrence counts into a table of probabilities for the associated binary encoding tree. Also writes count of branches taken for each node on the tree; this facilitiates decisions as to probability updates. */ void vp8_tree_probs_from_distribution(int n, /* n = size of alphabet */ vp8_token tok[/* n */], vp8_tree tree, vp8_prob probs[/* n-1 */], unsigned int branch_ct[/* n-1 */][2], const unsigned int num_events[/* n */], unsigned int Pfactor, int Round); /* Variant of above using coder spec rather than hardwired 8-bit probs. */ void vp8bc_tree_probs_from_distribution(int n, /* n = size of alphabet */ vp8_token tok[/* n */], vp8_tree tree, vp8_prob probs[/* n-1 */], unsigned int branch_ct[/* n-1 */][2], const unsigned int num_events[/* n */], c_bool_coder_spec *s); #ifdef __cplusplus } // extern "C" #endif # 81 "../../third_party/libvpx/source/libvpx/vp8/common/treecoder.h" #endif // VPX_VP8_COMMON_TREECODER_H_ # 83 "../../third_party/libvpx/source/libvpx/vp8/common/treecoder.h" #endif /* treecoder.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/entropy.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* blockd.h expanded by -frewrite-includes */ #include "blockd.h" #else /* blockd.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/entropy.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_BLOCKD_H_ #define VPX_VP8_COMMON_BLOCKD_H_ void vpx_log(const char *format, ...); #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_codec_internal.h expanded by -frewrite-includes */ #include "vpx/internal/vpx_codec_internal.h" #else /* vpx_codec_internal.h expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /*!\file * \brief Describes the decoder algorithm interface for algorithm * implementations. * * This file defines the private structures and data types that are only * relevant to implementing an algorithm, as opposed to using it. * * To create a decoder algorithm class, an interface structure is put * into the global namespace: *
 *     my_codec.c:
 *       vpx_codec_iface_t my_codec = {
 *           "My Codec v1.0",
 *           VPX_CODEC_ALG_ABI_VERSION,
 *           ...
 *       };
 *     
* * An application instantiates a specific decoder instance by using * vpx_codec_dec_init() and a pointer to the algorithm's interface structure: *
 *     my_app.c:
 *       extern vpx_codec_iface_t my_codec;
 *       {
 *           vpx_codec_ctx_t algo;
 *           int threads = 4;
 *           vpx_codec_dec_cfg_t cfg = { threads, 0, 0 };
 *           res = vpx_codec_dec_init(&algo, &my_codec, &cfg, 0);
 *       }
 *     
* * Once initialized, the instance is manged using other functions from * the vpx_codec_* family. */ #ifndef VPX_VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ #define VPX_VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_decoder.h expanded by -frewrite-includes */ #include "../vpx_decoder.h" #else /* vpx_decoder.h expanded by -frewrite-includes */ # 47 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_decoder.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_VPX_DECODER_H_ #define VPX_VPX_VPX_DECODER_H_ /*!\defgroup decoder Decoder Algorithm Interface * \ingroup codec * This abstraction allows applications using this decoder to easily support * multiple video formats with minimal code duplication. This section describes * the interface common to all decoders. * @{ */ /*!\file * \brief Describes the decoder algorithm interface to applications. * * This file describes the interface between an application and a * video decoder algorithm. * */ #ifdef __cplusplus extern "C" { #endif # 31 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_decoder.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_codec.h expanded by -frewrite-includes */ #include "./vpx_codec.h" // IWYU pragma: export #else /* vpx_codec.h expanded by -frewrite-includes */ # 32 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_decoder.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /*!\defgroup codec Common Algorithm Interface * This abstraction allows applications to easily support multiple video * formats with minimal code duplication. This section describes the interface * common to all codecs (both encoders and decoders). * @{ */ /*!\file * \brief Describes the codec algorithm interface to applications. * * This file describes the interface between an application and a * video codec algorithm. * * An application instantiates a specific codec instance by using * vpx_codec_dec_init() or vpx_codec_enc_init() and a pointer to the * algorithm's interface structure: *
 *     my_app.c:
 *       extern vpx_codec_iface_t my_codec;
 *       {
 *           vpx_codec_ctx_t algo;
 *           int threads = 4;
 *           vpx_codec_dec_cfg_t cfg = { threads, 0, 0 };
 *           res = vpx_codec_dec_init(&algo, &my_codec, &cfg, 0);
 *       }
 *     
* * Once initialized, the instance is manged using other functions from * the vpx_codec_* family. */ #ifndef VPX_VPX_VPX_CODEC_H_ #define VPX_VPX_VPX_CODEC_H_ #ifdef __cplusplus extern "C" { #endif # 47 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_image.h expanded by -frewrite-includes */ #include "./vpx_image.h" #else /* vpx_image.h expanded by -frewrite-includes */ # 48 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_image.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /*!\file * \brief Describes the vpx image descriptor and associated operations * */ #ifndef VPX_VPX_VPX_IMAGE_H_ #define VPX_VPX_VPX_IMAGE_H_ #ifdef __cplusplus extern "C" { #endif # 21 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_image.h" /*!\brief Current ABI version number * * \internal * If this file is altered in any way that changes the ABI, this value * must be bumped. Examples include, but are not limited to, changing * types, removing or reassigning enums, adding/removing/rearranging * fields to structures */ #define VPX_IMAGE_ABI_VERSION (5) /**<\hideinitializer*/ #define VPX_IMG_FMT_PLANAR 0x100 /**< Image is a planar format. */ #define VPX_IMG_FMT_UV_FLIP 0x200 /**< V plane precedes U in memory. */ #define VPX_IMG_FMT_HAS_ALPHA 0x400 /**< Image has an alpha channel. */ #define VPX_IMG_FMT_HIGHBITDEPTH 0x800 /**< Image uses 16bit framebuffer. */ /*!\brief List of supported image formats */ typedef enum vpx_img_fmt { VPX_IMG_FMT_NONE, VPX_IMG_FMT_YV12 = VPX_IMG_FMT_PLANAR | VPX_IMG_FMT_UV_FLIP | 1, /**< planar YVU */ VPX_IMG_FMT_I420 = VPX_IMG_FMT_PLANAR | 2, VPX_IMG_FMT_I422 = VPX_IMG_FMT_PLANAR | 5, VPX_IMG_FMT_I444 = VPX_IMG_FMT_PLANAR | 6, VPX_IMG_FMT_I440 = VPX_IMG_FMT_PLANAR | 7, VPX_IMG_FMT_NV12 = VPX_IMG_FMT_PLANAR | 9, VPX_IMG_FMT_I42016 = VPX_IMG_FMT_I420 | VPX_IMG_FMT_HIGHBITDEPTH, VPX_IMG_FMT_I42216 = VPX_IMG_FMT_I422 | VPX_IMG_FMT_HIGHBITDEPTH, VPX_IMG_FMT_I44416 = VPX_IMG_FMT_I444 | VPX_IMG_FMT_HIGHBITDEPTH, VPX_IMG_FMT_I44016 = VPX_IMG_FMT_I440 | VPX_IMG_FMT_HIGHBITDEPTH } vpx_img_fmt_t; /**< alias for enum vpx_img_fmt */ /*!\brief List of supported color spaces */ typedef enum vpx_color_space { VPX_CS_UNKNOWN = 0, /**< Unknown */ VPX_CS_BT_601 = 1, /**< BT.601 */ VPX_CS_BT_709 = 2, /**< BT.709 */ VPX_CS_SMPTE_170 = 3, /**< SMPTE.170 */ VPX_CS_SMPTE_240 = 4, /**< SMPTE.240 */ VPX_CS_BT_2020 = 5, /**< BT.2020 */ VPX_CS_RESERVED = 6, /**< Reserved */ VPX_CS_SRGB = 7 /**< sRGB */ } vpx_color_space_t; /**< alias for enum vpx_color_space */ /*!\brief List of supported color range */ typedef enum vpx_color_range { VPX_CR_STUDIO_RANGE = 0, /**<- Y [16..235], UV [16..240] (bit depth 8) */ /**<- Y [64..940], UV [64..960] (bit depth 10) */ /**<- Y [256..3760], UV [256..3840] (bit depth 12) */ VPX_CR_FULL_RANGE = 1 /**<- YUV/RGB [0..255] (bit depth 8) */ /**<- YUV/RGB [0..1023] (bit depth 10) */ /**<- YUV/RGB [0..4095] (bit depth 12) */ } vpx_color_range_t; /**< alias for enum vpx_color_range */ /**\brief Image Descriptor */ typedef struct vpx_image { vpx_img_fmt_t fmt; /**< Image Format */ vpx_color_space_t cs; /**< Color Space */ vpx_color_range_t range; /**< Color Range */ /* Image storage dimensions */ unsigned int w; /**< Stored image width */ unsigned int h; /**< Stored image height */ unsigned int bit_depth; /**< Stored image bit-depth */ /* Image display dimensions */ unsigned int d_w; /**< Displayed image width */ unsigned int d_h; /**< Displayed image height */ /* Image intended rendering dimensions */ unsigned int r_w; /**< Intended rendering image width */ unsigned int r_h; /**< Intended rendering image height */ /* Chroma subsampling info */ unsigned int x_chroma_shift; /**< subsampling order, X */ unsigned int y_chroma_shift; /**< subsampling order, Y */ /* Image data pointers. */ #define VPX_PLANE_PACKED 0 /**< To be used for all packed formats */ #define VPX_PLANE_Y 0 /**< Y (Luminance) plane */ #define VPX_PLANE_U 1 /**< U (Chroma) plane */ #define VPX_PLANE_V 2 /**< V (Chroma) plane */ #define VPX_PLANE_ALPHA 3 /**< A (Transparency) plane */ unsigned char *planes[4]; /**< pointer to the top left pixel for each plane */ int stride[4]; /**< stride between rows for each plane */ int bps; /**< bits per sample (for packed formats) */ /*!\brief The following member may be set by the application to associate * data with this image. */ void *user_priv; /* The following members should be treated as private. */ unsigned char *img_data; /**< private */ int img_data_owner; /**< private */ int self_allocd; /**< private */ void *fb_priv; /**< Frame buffer data associated with the image. */ } vpx_image_t; /**< alias for struct vpx_image */ /**\brief Representation of a rectangle on a surface */ typedef struct vpx_image_rect { unsigned int x; /**< leftmost column */ unsigned int y; /**< topmost row */ unsigned int w; /**< width */ unsigned int h; /**< height */ } vpx_image_rect_t; /**< alias for struct vpx_image_rect */ /*!\brief Open a descriptor, allocating storage for the underlying image * * Returns a descriptor for storing an image of the given format. The * storage for the descriptor is allocated on the heap. * * \param[in] img Pointer to storage for descriptor. If this parameter * is NULL, the storage for the descriptor will be * allocated on the heap. * \param[in] fmt Format for the image * \param[in] d_w Width of the image. Must not exceed 0x08000000 * (2^27). * \param[in] d_h Height of the image. Must not exceed 0x08000000 * (2^27). * \param[in] align Alignment, in bytes, of the image buffer and * each row in the image (stride). Must not exceed * 65536. * * \return Returns a pointer to the initialized image descriptor. If the img * parameter is non-null, the value of the img parameter will be * returned. */ vpx_image_t *vpx_img_alloc(vpx_image_t *img, vpx_img_fmt_t fmt, unsigned int d_w, unsigned int d_h, unsigned int align); /*!\brief Open a descriptor, using existing storage for the underlying image * * Returns a descriptor for storing an image of the given format. The * storage for descriptor has been allocated elsewhere, and a descriptor is * desired to "wrap" that storage. * * \param[in] img Pointer to storage for descriptor. If this * parameter is NULL, the storage for the descriptor * will be allocated on the heap. * \param[in] fmt Format for the image * \param[in] d_w Width of the image. Must not exceed 0x08000000 * (2^27). * \param[in] d_h Height of the image. Must not exceed 0x08000000 * (2^27). * \param[in] stride_align Alignment, in bytes, of each row in the image * (stride). Must not exceed 65536. * \param[in] img_data Storage to use for the image * * \return Returns a pointer to the initialized image descriptor. If the img * parameter is non-null, the value of the img parameter will be * returned. */ vpx_image_t *vpx_img_wrap(vpx_image_t *img, vpx_img_fmt_t fmt, unsigned int d_w, unsigned int d_h, unsigned int stride_align, unsigned char *img_data); /*!\brief Set the rectangle identifying the displayed portion of the image * * Updates the displayed rectangle (aka viewport) on the image surface to * match the specified coordinates and size. Specifically, sets img->d_w, * img->d_h, and elements of the img->planes[] array. * * \param[in] img Image descriptor * \param[in] x leftmost column * \param[in] y topmost row * \param[in] w width * \param[in] h height * * \return 0 if the requested rectangle is valid, nonzero (-1) otherwise. */ int vpx_img_set_rect(vpx_image_t *img, unsigned int x, unsigned int y, unsigned int w, unsigned int h); /*!\brief Flip the image vertically (top for bottom) * * Adjusts the image descriptor's pointers and strides to make the image * be referenced upside-down. * * \param[in] img Image descriptor */ void vpx_img_flip(vpx_image_t *img); /*!\brief Close an image descriptor * * Frees all allocated storage associated with an image descriptor. * * \param[in] img Image descriptor */ void vpx_img_free(vpx_image_t *img); #ifdef __cplusplus } // extern "C" #endif # 218 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_image.h" #endif // VPX_VPX_VPX_IMAGE_H_ # 220 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_image.h" #endif /* vpx_image.h expanded by -frewrite-includes */ # 49 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "./vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 49 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" # 50 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" /*!\brief Decorator indicating a function is deprecated */ #ifndef VPX_DEPRECATED #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) && __GNUC__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 54 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #define VPX_DEPRECATED __attribute__((deprecated)) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 56 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #define VPX_DEPRECATED #else # 58 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #define VPX_DEPRECATED #endif # 60 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #endif /* VPX_DEPRECATED */ # 61 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #ifndef VPX_DECLSPEC_DEPRECATED #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) && __GNUC__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 64 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #define VPX_DECLSPEC_DEPRECATED /**< \copydoc #VPX_DEPRECATED */ #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 66 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" /*!\brief \copydoc #VPX_DEPRECATED */ #define VPX_DECLSPEC_DEPRECATED __declspec(deprecated) #else # 69 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #define VPX_DECLSPEC_DEPRECATED /**< \copydoc #VPX_DEPRECATED */ #endif # 71 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #endif /* VPX_DECLSPEC_DEPRECATED */ # 72 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" /*!\brief Decorator indicating a function is potentially unused */ #ifndef VPX_UNUSED #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) || defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 76 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #define VPX_UNUSED __attribute__((unused)) #else # 78 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #define VPX_UNUSED #endif # 80 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #endif /* VPX_UNUSED */ # 81 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" /*!\brief Current ABI version number * * \internal * If this file is altered in any way that changes the ABI, this value * must be bumped. Examples include, but are not limited to, changing * types, removing or reassigning enums, adding/removing/rearranging * fields to structures */ #define VPX_CODEC_ABI_VERSION (4 + VPX_IMAGE_ABI_VERSION) /**<\hideinitializer*/ /*!\brief Algorithm return codes */ typedef enum { /*!\brief Operation completed without error */ VPX_CODEC_OK, /*!\brief Unspecified error */ VPX_CODEC_ERROR, /*!\brief Memory operation failed */ VPX_CODEC_MEM_ERROR, /*!\brief ABI version mismatch */ VPX_CODEC_ABI_MISMATCH, /*!\brief Algorithm does not have required capability */ VPX_CODEC_INCAPABLE, /*!\brief The given bitstream is not supported. * * The bitstream was unable to be parsed at the highest level. The decoder * is unable to proceed. This error \ref SHOULD be treated as fatal to the * stream. */ VPX_CODEC_UNSUP_BITSTREAM, /*!\brief Encoded bitstream uses an unsupported feature * * The decoder does not implement a feature required by the encoder. This * return code should only be used for features that prevent future * pictures from being properly decoded. This error \ref MAY be treated as * fatal to the stream or \ref MAY be treated as fatal to the current GOP. */ VPX_CODEC_UNSUP_FEATURE, /*!\brief The coded data for this stream is corrupt or incomplete * * There was a problem decoding the current frame. This return code * should only be used for failures that prevent future pictures from * being properly decoded. This error \ref MAY be treated as fatal to the * stream or \ref MAY be treated as fatal to the current GOP. If decoding * is continued for the current GOP, artifacts may be present. */ VPX_CODEC_CORRUPT_FRAME, /*!\brief An application-supplied parameter is not valid. * */ VPX_CODEC_INVALID_PARAM, /*!\brief An iterator reached the end of list. * */ VPX_CODEC_LIST_END } vpx_codec_err_t; /*! \brief Codec capabilities bitfield * * Each codec advertises the capabilities it supports as part of its * ::vpx_codec_iface_t interface structure. Capabilities are extra interfaces * or functionality, and are not required to be supported. * * The available flags are specified by VPX_CODEC_CAP_* defines. */ typedef long vpx_codec_caps_t; #define VPX_CODEC_CAP_DECODER 0x1 /**< Is a decoder */ #define VPX_CODEC_CAP_ENCODER 0x2 /**< Is an encoder */ /*! Can support images at greater than 8 bitdepth. */ #define VPX_CODEC_CAP_HIGHBITDEPTH 0x4 /*! \brief Initialization-time Feature Enabling * * Certain codec features must be known at initialization time, to allow for * proper memory allocation. * * The available flags are specified by VPX_CODEC_USE_* defines. */ typedef long vpx_codec_flags_t; /*!\brief Codec interface structure. * * Contains function pointers and other data private to the codec * implementation. This structure is opaque to the application. */ typedef const struct vpx_codec_iface vpx_codec_iface_t; /*!\brief Codec private data structure. * * Contains data private to the codec implementation. This structure is opaque * to the application. */ typedef struct vpx_codec_priv vpx_codec_priv_t; /*!\brief Iterator * * Opaque storage used for iterating over lists. */ typedef const void *vpx_codec_iter_t; /*!\brief Codec context structure * * All codecs \ref MUST support this context structure fully. In general, * this data should be considered private to the codec algorithm, and * not be manipulated or examined by the calling application. Applications * may reference the 'name' member to get a printable description of the * algorithm. */ typedef struct vpx_codec_ctx { const char *name; /**< Printable interface name */ vpx_codec_iface_t *iface; /**< Interface pointers */ vpx_codec_err_t err; /**< Last returned error */ const char *err_detail; /**< Detailed info, if available */ vpx_codec_flags_t init_flags; /**< Flags passed at init time */ union { /**< Decoder Configuration Pointer */ const struct vpx_codec_dec_cfg *dec; /**< Encoder Configuration Pointer */ const struct vpx_codec_enc_cfg *enc; const void *raw; } config; /**< Configuration pointer aliasing union */ vpx_codec_priv_t *priv; /**< Algorithm private storage */ } vpx_codec_ctx_t; /*!\brief Bit depth for codec * * * This enumeration determines the bit depth of the codec. */ typedef enum vpx_bit_depth { VPX_BITS_8 = 8, /**< 8 bits */ VPX_BITS_10 = 10, /**< 10 bits */ VPX_BITS_12 = 12, /**< 12 bits */ } vpx_bit_depth_t; /* * Library Version Number Interface * * For example, see the following sample return values: * vpx_codec_version() (1<<16 | 2<<8 | 3) * vpx_codec_version_str() "v1.2.3-rc1-16-gec6a1ba" * vpx_codec_version_extra_str() "rc1-16-gec6a1ba" */ /*!\brief Return the version information (as an integer) * * Returns a packed encoding of the library version number. This will only * include * the major.minor.patch component of the version number. Note that this encoded * value should be accessed through the macros provided, as the encoding may * change * in the future. * */ int vpx_codec_version(void); #define VPX_VERSION_MAJOR(v) \ (((v) >> 16) & 0xff) /**< extract major from packed version */ #define VPX_VERSION_MINOR(v) \ (((v) >> 8) & 0xff) /**< extract minor from packed version */ #define VPX_VERSION_PATCH(v) \ (((v) >> 0) & 0xff) /**< extract patch from packed version */ /*!\brief Return the version major number */ #define vpx_codec_version_major() ((vpx_codec_version() >> 16) & 0xff) /*!\brief Return the version minor number */ #define vpx_codec_version_minor() ((vpx_codec_version() >> 8) & 0xff) /*!\brief Return the version patch number */ #define vpx_codec_version_patch() ((vpx_codec_version() >> 0) & 0xff) /*!\brief Return the version information (as a string) * * Returns a printable string containing the full library version number. This * may * contain additional text following the three digit version number, as to * indicate * release candidates, prerelease versions, etc. * */ const char *vpx_codec_version_str(void); /*!\brief Return the version information (as a string) * * Returns a printable "extra string". This is the component of the string * returned * by vpx_codec_version_str() following the three digit version number. * */ const char *vpx_codec_version_extra_str(void); /*!\brief Return the build configuration * * Returns a printable string containing an encoded version of the build * configuration. This may be useful to vpx support. * */ const char *vpx_codec_build_config(void); /*!\brief Return the name for a given interface * * Returns a human readable string for name of the given codec interface. * * \param[in] iface Interface pointer * */ const char *vpx_codec_iface_name(vpx_codec_iface_t *iface); /*!\brief Convert error number to printable string * * Returns a human readable string for the last error returned by the * algorithm. The returned error will be one line and will not contain * any newline characters. * * * \param[in] err Error number. * */ const char *vpx_codec_err_to_string(vpx_codec_err_t err); /*!\brief Retrieve error synopsis for codec context * * Returns a human readable string for the last error returned by the * algorithm. The returned error will be one line and will not contain * any newline characters. * * * \param[in] ctx Pointer to this instance's context. * */ const char *vpx_codec_error(const vpx_codec_ctx_t *ctx); /*!\brief Retrieve detailed error information for codec context * * Returns a human readable string providing detailed information about * the last error. The returned string is only valid until the next * vpx_codec_* function call (except vpx_codec_error and * vpx_codec_error_detail) on the codec context. * * \param[in] ctx Pointer to this instance's context. * * \retval NULL * No detailed information is available. */ const char *vpx_codec_error_detail(const vpx_codec_ctx_t *ctx); /* REQUIRED FUNCTIONS * * The following functions are required to be implemented for all codecs. * They represent the base case functionality expected of all codecs. */ /*!\brief Destroy a codec instance * * Destroys a codec context, freeing any associated memory buffers. * * \param[in] ctx Pointer to this instance's context * * \retval #VPX_CODEC_OK * The codec instance has been destroyed. * \retval #VPX_CODEC_INVALID_PARAM * ctx is a null pointer. * \retval #VPX_CODEC_ERROR * Codec context not initialized. */ vpx_codec_err_t vpx_codec_destroy(vpx_codec_ctx_t *ctx); /*!\brief Get the capabilities of an algorithm. * * Retrieves the capabilities bitfield from the algorithm's interface. * * \param[in] iface Pointer to the algorithm interface * */ vpx_codec_caps_t vpx_codec_get_caps(vpx_codec_iface_t *iface); /*!\brief Control algorithm * * This function is used to exchange algorithm specific data with the codec * instance. This can be used to implement features specific to a particular * algorithm. * * This wrapper function dispatches the request to the helper function * associated with the given ctrl_id. It tries to call this function * transparently, but will return #VPX_CODEC_ERROR if the request could not * be dispatched. * * Note that this function should not be used directly. Call the * #vpx_codec_control wrapper macro instead. * * \param[in] ctx Pointer to this instance's context * \param[in] ctrl_id Algorithm specific control identifier * * \retval #VPX_CODEC_OK * The control request was processed. * \retval #VPX_CODEC_ERROR * The control request was not processed. * \retval #VPX_CODEC_INVALID_PARAM * The data was not valid. */ vpx_codec_err_t vpx_codec_control_(vpx_codec_ctx_t *ctx, int ctrl_id, ...); #if 0 /* disabled by -frewrite-includes */ #if defined(VPX_DISABLE_CTRL_TYPECHECKS) && VPX_DISABLE_CTRL_TYPECHECKS #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 393 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #define vpx_codec_control(ctx, id, data) vpx_codec_control_(ctx, id, data) #define VPX_CTRL_USE_TYPE(id, typ) #define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ) #define VPX_CTRL_VOID(id, typ) #else # 399 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" /*!\brief vpx_codec_control wrapper macro * * This macro allows for type safe conversions across the variadic parameter * to vpx_codec_control_(). * * \internal * It works by dispatching the call to the control function through a wrapper * function named with the id parameter. */ #define vpx_codec_control(ctx, id, data) \ vpx_codec_control_##id(ctx, id, data) /**<\hideinitializer*/ /*!\brief vpx_codec_control type definition macro * * This macro allows for type safe conversions across the variadic parameter * to vpx_codec_control_(). It defines the type of the argument for a given * control identifier. * * \internal * It defines a static function with * the correctly typed arguments as a wrapper to the type-unsafe internal * function. */ #define VPX_CTRL_USE_TYPE(id, typ) \ static vpx_codec_err_t vpx_codec_control_##id(vpx_codec_ctx_t *, int, typ) \ VPX_UNUSED; \ \ static vpx_codec_err_t vpx_codec_control_##id(vpx_codec_ctx_t *ctx, \ int ctrl_id, typ data) { \ return vpx_codec_control_(ctx, ctrl_id, data); \ } /**<\hideinitializer*/ /*!\brief vpx_codec_control deprecated type definition macro * * Like #VPX_CTRL_USE_TYPE, but indicates that the specified control is * deprecated and should not be used. Consult the documentation for your * codec for more information. * * \internal * It defines a static function with the correctly typed arguments as a * wrapper to the type-unsafe internal function. */ #define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ) \ VPX_DECLSPEC_DEPRECATED static vpx_codec_err_t vpx_codec_control_##id( \ vpx_codec_ctx_t *, int, typ) VPX_DEPRECATED VPX_UNUSED; \ \ VPX_DECLSPEC_DEPRECATED static vpx_codec_err_t vpx_codec_control_##id( \ vpx_codec_ctx_t *ctx, int ctrl_id, typ data) { \ return vpx_codec_control_(ctx, ctrl_id, data); \ } /**<\hideinitializer*/ /*!\brief vpx_codec_control void type definition macro * * This macro allows for type safe conversions across the variadic parameter * to vpx_codec_control_(). It indicates that a given control identifier takes * no argument. * * \internal * It defines a static function without a data argument as a wrapper to the * type-unsafe internal function. */ #define VPX_CTRL_VOID(id) \ static vpx_codec_err_t vpx_codec_control_##id(vpx_codec_ctx_t *, int) \ VPX_UNUSED; \ \ static vpx_codec_err_t vpx_codec_control_##id(vpx_codec_ctx_t *ctx, \ int ctrl_id) { \ return vpx_codec_control_(ctx, ctrl_id); \ } /**<\hideinitializer*/ #endif # 470 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" /*!@} - end defgroup codec*/ #ifdef __cplusplus } #endif # 475 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #endif // VPX_VPX_VPX_CODEC_H_ # 476 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_codec.h" #endif /* vpx_codec.h expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_decoder.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_frame_buffer.h expanded by -frewrite-includes */ #include "./vpx_frame_buffer.h" #else /* vpx_frame_buffer.h expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_decoder.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_frame_buffer.h" 1 /* * Copyright (c) 2014 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_VPX_FRAME_BUFFER_H_ #define VPX_VPX_VPX_FRAME_BUFFER_H_ /*!\file * \brief Describes the decoder external frame buffer interface. */ #ifdef __cplusplus extern "C" { #endif # 21 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_frame_buffer.h" #if 0 /* expanded by -frewrite-includes */ #include "./vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_frame_buffer.h" # 23 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_frame_buffer.h" /*!\brief The maximum number of work buffers used by libvpx. * Support maximum 4 threads to decode video in parallel. * Each thread will use one work buffer. * TODO(hkuang): Add support to set number of worker threads dynamically. */ #define VPX_MAXIMUM_WORK_BUFFERS 8 /*!\brief The maximum number of reference buffers that a VP9 encoder may use. */ #define VP9_MAXIMUM_REF_BUFFERS 8 /*!\brief External frame buffer * * This structure holds allocated frame buffers used by the decoder. */ typedef struct vpx_codec_frame_buffer { uint8_t *data; /**< Pointer to the data buffer */ size_t size; /**< Size of data in bytes */ void *priv; /**< Frame's private data */ } vpx_codec_frame_buffer_t; /*!\brief get frame buffer callback prototype * * This callback is invoked by the decoder to retrieve data for the frame * buffer in order for the decode call to complete. The callback must * allocate at least min_size in bytes and assign it to fb->data. The callback * must zero out all the data allocated. Then the callback must set fb->size * to the allocated size. The application does not need to align the allocated * data. The callback is triggered when the decoder needs a frame buffer to * decode a compressed image into. This function may be called more than once * for every call to vpx_codec_decode. The application may set fb->priv to * some data which will be passed back in the vpx_image_t and the release * function call. |fb| is guaranteed to not be NULL. On success the callback * must return 0. Any failure the callback must return a value less than 0. * * \param[in] priv Callback's private data * \param[in] min_size Size in bytes needed by the buffer * \param[in,out] fb Pointer to vpx_codec_frame_buffer_t */ typedef int (*vpx_get_frame_buffer_cb_fn_t)(void *priv, size_t min_size, vpx_codec_frame_buffer_t *fb); /*!\brief release frame buffer callback prototype * * This callback is invoked by the decoder when the frame buffer is not * referenced by any other buffers. |fb| is guaranteed to not be NULL. On * success the callback must return 0. Any failure the callback must return * a value less than 0. * * \param[in] priv Callback's private data * \param[in] fb Pointer to vpx_codec_frame_buffer_t */ typedef int (*vpx_release_frame_buffer_cb_fn_t)(void *priv, vpx_codec_frame_buffer_t *fb); #ifdef __cplusplus } // extern "C" #endif # 82 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_frame_buffer.h" #endif // VPX_VPX_VPX_FRAME_BUFFER_H_ # 84 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_frame_buffer.h" #endif /* vpx_frame_buffer.h expanded by -frewrite-includes */ # 34 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_decoder.h" 2 /*!\brief Current ABI version number * * \internal * If this file is altered in any way that changes the ABI, this value * must be bumped. Examples include, but are not limited to, changing * types, removing or reassigning enums, adding/removing/rearranging * fields to structures */ #define VPX_DECODER_ABI_VERSION \ (3 + VPX_CODEC_ABI_VERSION) /**<\hideinitializer*/ /*! \brief Decoder capabilities bitfield * * Each decoder advertises the capabilities it supports as part of its * ::vpx_codec_iface_t interface structure. Capabilities are extra interfaces * or functionality, and are not required to be supported by a decoder. * * The available flags are specified by VPX_CODEC_CAP_* defines. */ #define VPX_CODEC_CAP_PUT_SLICE 0x10000 /**< Will issue put_slice callbacks */ #define VPX_CODEC_CAP_PUT_FRAME 0x20000 /**< Will issue put_frame callbacks */ #define VPX_CODEC_CAP_POSTPROC 0x40000 /**< Can postprocess decoded frame */ /*!\brief Can conceal errors due to packet loss */ #define VPX_CODEC_CAP_ERROR_CONCEALMENT 0x80000 /*!\brief Can receive encoded frames one fragment at a time */ #define VPX_CODEC_CAP_INPUT_FRAGMENTS 0x100000 /*!\brief Can support frame-based multi-threading */ #define VPX_CODEC_CAP_FRAME_THREADING 0x200000 /*!brief Can support external frame buffers */ #define VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER 0x400000 /*! \brief Initialization-time Feature Enabling * * Certain codec features must be known at initialization time, to allow for * proper memory allocation. * * The available flags are specified by VPX_CODEC_USE_* defines. */ #define VPX_CODEC_USE_POSTPROC 0x10000 /**< Postprocess decoded frame */ /*!\brief Conceal errors in decoded frames */ #define VPX_CODEC_USE_ERROR_CONCEALMENT 0x20000 /*!\brief The input frame should be passed to the decoder one fragment at a * time */ #define VPX_CODEC_USE_INPUT_FRAGMENTS 0x40000 /*!\brief Enable frame-based multi-threading */ #define VPX_CODEC_USE_FRAME_THREADING 0x80000 /*!\brief Stream properties * * This structure is used to query or set properties of the decoded * stream. Algorithms may extend this structure with data specific * to their bitstream by setting the sz member appropriately. */ typedef struct vpx_codec_stream_info { unsigned int sz; /**< Size of this structure */ unsigned int w; /**< Width (or 0 for unknown/default) */ unsigned int h; /**< Height (or 0 for unknown/default) */ unsigned int is_kf; /**< Current frame is a keyframe */ } vpx_codec_stream_info_t; /* REQUIRED FUNCTIONS * * The following functions are required to be implemented for all decoders. * They represent the base case functionality expected of all decoders. */ /*!\brief Initialization Configurations * * This structure is used to pass init time configuration options to the * decoder. */ typedef struct vpx_codec_dec_cfg { unsigned int threads; /**< Maximum number of threads to use, default 1 */ unsigned int w; /**< Width */ unsigned int h; /**< Height */ } vpx_codec_dec_cfg_t; /**< alias for struct vpx_codec_dec_cfg */ /*!\brief Initialize a decoder instance * * Initializes a decoder context using the given interface. Applications * should call the vpx_codec_dec_init convenience macro instead of this * function directly, to ensure that the ABI version number parameter * is properly initialized. * * If the library was configured with --disable-multithread, this call * is not thread safe and should be guarded with a lock if being used * in a multithreaded context. * * \param[in] ctx Pointer to this instance's context. * \param[in] iface Pointer to the algorithm interface to use. * \param[in] cfg Configuration to use, if known. May be NULL. * \param[in] flags Bitfield of VPX_CODEC_USE_* flags * \param[in] ver ABI version number. Must be set to * VPX_DECODER_ABI_VERSION * \retval #VPX_CODEC_OK * The decoder algorithm has been initialized. * \retval #VPX_CODEC_MEM_ERROR * Memory allocation failed. */ vpx_codec_err_t vpx_codec_dec_init_ver(vpx_codec_ctx_t *ctx, vpx_codec_iface_t *iface, const vpx_codec_dec_cfg_t *cfg, vpx_codec_flags_t flags, int ver); /*!\brief Convenience macro for vpx_codec_dec_init_ver() * * Ensures the ABI version parameter is properly set. */ #define vpx_codec_dec_init(ctx, iface, cfg, flags) \ vpx_codec_dec_init_ver(ctx, iface, cfg, flags, VPX_DECODER_ABI_VERSION) /*!\brief Parse stream info from a buffer * * Performs high level parsing of the bitstream. Construction of a decoder * context is not necessary. Can be used to determine if the bitstream is * of the proper format, and to extract information from the stream. * * \param[in] iface Pointer to the algorithm interface * \param[in] data Pointer to a block of data to parse * \param[in] data_sz Size of the data buffer * \param[in,out] si Pointer to stream info to update. The sz member * \ref MUST be properly initialized, but \ref MAY be * clobbered by the algorithm. This parameter \ref MAY * be NULL. * * \retval #VPX_CODEC_OK * Bitstream is parsable and stream information updated */ vpx_codec_err_t vpx_codec_peek_stream_info(vpx_codec_iface_t *iface, const uint8_t *data, unsigned int data_sz, vpx_codec_stream_info_t *si); /*!\brief Return information about the current stream. * * Returns information about the stream that has been parsed during decoding. * * \param[in] ctx Pointer to this instance's context * \param[in,out] si Pointer to stream info to update. The sz member * \ref MUST be properly initialized, but \ref MAY be * clobbered by the algorithm. This parameter \ref MAY * be NULL. * * \retval #VPX_CODEC_OK * Bitstream is parsable and stream information updated */ vpx_codec_err_t vpx_codec_get_stream_info(vpx_codec_ctx_t *ctx, vpx_codec_stream_info_t *si); /*!\brief Decode data * * Processes a buffer of coded data. If the processing results in a new * decoded frame becoming available, put_slice and put_frame callbacks may be * invoked, as appropriate. Encoded data \ref MUST be passed in DTS (decode * time stamp) order. Frames produced will always be in PTS (presentation * time stamp) order. * If the decoder is configured with VPX_CODEC_USE_INPUT_FRAGMENTS enabled, * data and data_sz can contain a fragment of the encoded frame. Fragment * \#n must contain at least partition \#n, but can also contain subsequent * partitions (\#n+1 - \#n+i), and if so, fragments \#n+1, .., \#n+i must * be empty. When no more data is available, this function should be called * with NULL as data and 0 as data_sz. The memory passed to this function * must be available until the frame has been decoded. * * \param[in] ctx Pointer to this instance's context * \param[in] data Pointer to this block of new coded data. If * NULL, the put_frame callback is invoked for * the previously decoded frame. * \param[in] data_sz Size of the coded data, in bytes. * \param[in] user_priv Application specific data to associate with * this frame. * \param[in] deadline Soft deadline the decoder should attempt to meet, * in us. Set to zero for unlimited. * NOTE: The deadline parameter is ignored. Always * pass 0. * * \return Returns #VPX_CODEC_OK if the coded data was processed completely * and future pictures can be decoded without error. Otherwise, * see the descriptions of the other error codes in ::vpx_codec_err_t * for recoverability capabilities. */ vpx_codec_err_t vpx_codec_decode(vpx_codec_ctx_t *ctx, const uint8_t *data, unsigned int data_sz, void *user_priv, long deadline); /*!\brief Decoded frames iterator * * Iterates over a list of the frames available for display. The iterator * storage should be initialized to NULL to start the iteration. Iteration is * complete when this function returns NULL. * * The list of available frames becomes valid upon completion of the * vpx_codec_decode call, and remains valid until the next call to * vpx_codec_decode. * * \param[in] ctx Pointer to this instance's context * \param[in,out] iter Iterator storage, initialized to NULL * * \return Returns a pointer to an image, if one is ready for display. Frames * produced will always be in PTS (presentation time stamp) order. */ vpx_image_t *vpx_codec_get_frame(vpx_codec_ctx_t *ctx, vpx_codec_iter_t *iter); /*!\defgroup cap_put_frame Frame-Based Decoding Functions * * The following function is required to be implemented for all decoders * that advertise the VPX_CODEC_CAP_PUT_FRAME capability. Calling this * function for codecs that don't advertise this capability will result in * an error code being returned, usually VPX_CODEC_INCAPABLE. * @{ */ /*!\brief put frame callback prototype * * This callback is invoked by the decoder to notify the application of * the availability of decoded image data. */ typedef void (*vpx_codec_put_frame_cb_fn_t)(void *user_priv, const vpx_image_t *img); /*!\brief Register for notification of frame completion. * * Registers a given function to be called when a decoded frame is * available. * * \param[in] ctx Pointer to this instance's context * \param[in] cb Pointer to the callback function * \param[in] user_priv User's private data * * \retval #VPX_CODEC_OK * Callback successfully registered. * \retval #VPX_CODEC_ERROR * Decoder context not initialized. * \retval #VPX_CODEC_INCAPABLE * Algorithm not capable of posting frame completion. */ vpx_codec_err_t vpx_codec_register_put_frame_cb(vpx_codec_ctx_t *ctx, vpx_codec_put_frame_cb_fn_t cb, void *user_priv); /*!@} - end defgroup cap_put_frame */ /*!\defgroup cap_put_slice Slice-Based Decoding Functions * * The following function is required to be implemented for all decoders * that advertise the VPX_CODEC_CAP_PUT_SLICE capability. Calling this * function for codecs that don't advertise this capability will result in * an error code being returned, usually VPX_CODEC_INCAPABLE. * @{ */ /*!\brief put slice callback prototype * * This callback is invoked by the decoder to notify the application of * the availability of partially decoded image data. */ typedef void (*vpx_codec_put_slice_cb_fn_t)(void *user_priv, const vpx_image_t *img, const vpx_image_rect_t *valid, const vpx_image_rect_t *update); /*!\brief Register for notification of slice completion. * * Registers a given function to be called when a decoded slice is * available. * * \param[in] ctx Pointer to this instance's context * \param[in] cb Pointer to the callback function * \param[in] user_priv User's private data * * \retval #VPX_CODEC_OK * Callback successfully registered. * \retval #VPX_CODEC_ERROR * Decoder context not initialized. * \retval #VPX_CODEC_INCAPABLE * Algorithm not capable of posting slice completion. */ vpx_codec_err_t vpx_codec_register_put_slice_cb(vpx_codec_ctx_t *ctx, vpx_codec_put_slice_cb_fn_t cb, void *user_priv); /*!@} - end defgroup cap_put_slice*/ /*!\defgroup cap_external_frame_buffer External Frame Buffer Functions * * The following function is required to be implemented for all decoders * that advertise the VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER capability. * Calling this function for codecs that don't advertise this capability * will result in an error code being returned, usually VPX_CODEC_INCAPABLE. * * \note * Currently this only works with VP9. * @{ */ /*!\brief Pass in external frame buffers for the decoder to use. * * Registers functions to be called when libvpx needs a frame buffer * to decode the current frame and a function to be called when libvpx does * not internally reference the frame buffer. This set function must * be called before the first call to decode or libvpx will assume the * default behavior of allocating frame buffers internally. * * \param[in] ctx Pointer to this instance's context * \param[in] cb_get Pointer to the get callback function * \param[in] cb_release Pointer to the release callback function * \param[in] cb_priv Callback's private data * * \retval #VPX_CODEC_OK * External frame buffers will be used by libvpx. * \retval #VPX_CODEC_INVALID_PARAM * One or more of the callbacks were NULL. * \retval #VPX_CODEC_ERROR * Decoder context not initialized. * \retval #VPX_CODEC_INCAPABLE * Algorithm not capable of using external frame buffers. * * \note * When decoding VP9, the application may be required to pass in at least * #VP9_MAXIMUM_REF_BUFFERS + #VPX_MAXIMUM_WORK_BUFFERS external frame * buffers. */ vpx_codec_err_t vpx_codec_set_frame_buffer_functions( vpx_codec_ctx_t *ctx, vpx_get_frame_buffer_cb_fn_t cb_get, vpx_release_frame_buffer_cb_fn_t cb_release, void *cb_priv); /*!@} - end defgroup cap_external_frame_buffer */ /*!@} - end defgroup decoder*/ #ifdef __cplusplus } #endif # 367 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_decoder.h" #endif // VPX_VPX_VPX_DECODER_H_ # 368 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_decoder.h" #endif /* vpx_decoder.h expanded by -frewrite-includes */ # 48 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_encoder.h expanded by -frewrite-includes */ #include "../vpx_encoder.h" #else /* vpx_encoder.h expanded by -frewrite-includes */ # 48 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_encoder.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_VPX_ENCODER_H_ #define VPX_VPX_VPX_ENCODER_H_ /*!\defgroup encoder Encoder Algorithm Interface * \ingroup codec * This abstraction allows applications using this encoder to easily support * multiple video formats with minimal code duplication. This section describes * the interface common to all encoders. * @{ */ /*!\file * \brief Describes the encoder algorithm interface to applications. * * This file describes the interface between an application and a * video encoder algorithm. * */ #ifdef __cplusplus extern "C" { #endif # 31 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_encoder.h" #if 0 /* expanded by -frewrite-includes */ #include "./vpx_codec.h" // IWYU pragma: export #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_encoder.h" # 33 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_encoder.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_ext_ratectrl.h expanded by -frewrite-includes */ #include "./vpx_ext_ratectrl.h" #else /* vpx_ext_ratectrl.h expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_encoder.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_ext_ratectrl.h" 1 /* * Copyright (c) 2020 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /*!\file * \brief Defines structs and callbacks needed for external rate control. * */ #ifndef VPX_VPX_VPX_EXT_RATECTRL_H_ #define VPX_VPX_VPX_EXT_RATECTRL_H_ #ifdef __cplusplus extern "C" { #endif # 21 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_ext_ratectrl.h" #if 0 /* expanded by -frewrite-includes */ #include "./vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_ext_ratectrl.h" # 23 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_ext_ratectrl.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_tpl.h expanded by -frewrite-includes */ #include "./vpx_tpl.h" #else /* vpx_tpl.h expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_ext_ratectrl.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_tpl.h" 1 /* * Copyright (c) 2023 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /*!\file * \brief Describes the TPL stats descriptor and associated operations * */ #ifndef VPX_VPX_VPX_TPL_H_ #define VPX_VPX_VPX_TPL_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_tpl.h" # 19 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_tpl.h" #if 0 /* expanded by -frewrite-includes */ #include "./vpx_codec.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_tpl.h" # 20 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_tpl.h" #ifdef __cplusplus extern "C" { #endif # 24 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_tpl.h" /*!\brief Current ABI version number * * \internal * If this file is altered in any way that changes the ABI, this value * must be bumped. Examples include, but are not limited to, changing * types, removing or reassigning enums, adding/removing/rearranging * fields to structures */ #define VPX_TPL_ABI_VERSION 4 /**<\hideinitializer*/ /*!\brief Temporal dependency model stats for each block before propagation */ typedef struct VpxTplBlockStats { int16_t row; /**< Pixel row of the top left corner */ int16_t col; /**< Pixel col of the top left corner */ int64_t intra_cost; /**< Intra cost */ int64_t inter_cost; /**< Inter cost */ int16_t mv_r; /**< Motion vector row */ int16_t mv_c; /**< Motion vector col */ int64_t srcrf_rate; /**< Rate from source ref frame */ int64_t srcrf_dist; /**< Distortion from source ref frame */ int64_t inter_pred_err; /**< Inter prediction error */ int64_t intra_pred_err; /**< Intra prediction error */ int ref_frame_index; /**< Ref frame index in the ref frame buffer */ } VpxTplBlockStats; /*!\brief Temporal dependency model stats for each frame before propagation */ typedef struct VpxTplFrameStats { int frame_width; /**< Frame width */ int frame_height; /**< Frame height */ int num_blocks; /**< Number of blocks. Size of block_stats_list */ VpxTplBlockStats *block_stats_list; /**< List of tpl stats for each block */ } VpxTplFrameStats; /*!\brief Temporal dependency model stats for each GOP before propagation */ typedef struct VpxTplGopStats { int size; /**< GOP size, also the size of frame_stats_list. */ VpxTplFrameStats *frame_stats_list; /**< List of tpl stats for each frame */ } VpxTplGopStats; #ifdef __cplusplus } // extern "C" #endif # 67 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_tpl.h" #endif // VPX_VPX_VPX_TPL_H_ # 69 "../../third_party/libvpx/source/libvpx/vpx/internal/../././vpx_tpl.h" #endif /* vpx_tpl.h expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_ext_ratectrl.h" 2 /*!\brief Current ABI version number * * \internal * If this file is altered in any way that changes the ABI, this value * must be bumped. Examples include, but are not limited to, changing * types, removing or reassigning enums, adding/removing/rearranging * fields to structures. */ #define VPX_EXT_RATECTRL_ABI_VERSION (5 + VPX_TPL_ABI_VERSION) /*!\brief Corresponds to MAX_STATIC_GF_GROUP_LENGTH defined in vp9_ratectrl.h */ #define VPX_RC_MAX_STATIC_GF_GROUP_LENGTH 250 /*!\brief Max number of ref frames returned by the external RC. * * Corresponds to MAX_REF_FRAMES defined in vp9_blockd.h. */ #define VPX_RC_MAX_REF_FRAMES 4 /*!\brief The type of the external rate control. * * This controls what encoder parameters are determined by the external rate * control. */ typedef enum vpx_rc_type { /*! * The external rate control doesn't determine anything. * This mode is used as baseline. */ VPX_RC_NONE = 0, /*! * The external rate control model determines the quantization parameter (QP) * for each frame. */ VPX_RC_QP = 1 << 0, /*! * The external rate control model determines the group of picture (GOP) of * the video sequence. */ VPX_RC_GOP = 1 << 1, /*! * The external rate control model determines the rate-distortion multiplier * (rdmult) for the current frame. */ VPX_RC_RDMULT = 1 << 2, /*! * The external rate control model determines both QP and GOP. */ VPX_RC_GOP_QP = VPX_RC_QP | VPX_RC_GOP, /*! * The external rate control model determines the QP, GOP and the rdmult. */ VPX_RC_GOP_QP_RDMULT = VPX_RC_QP | VPX_RC_GOP | VPX_RC_RDMULT } vpx_rc_type_t; /*!\brief The rate control mode for the external rate control model. */ typedef enum vpx_ext_rc_mode { VPX_RC_QMODE = 0, VPX_RC_VBR = 1, VPX_RC_CQ = 2, } vpx_ext_rc_mode_t; /*!\brief Corresponds to FRAME_UPDATE_TYPE defined in vp9_firstpass.h. */ typedef enum vpx_rc_frame_update_type { VPX_RC_INVALID_UPDATE_TYPE = -1, VPX_RC_KF_UPDATE = 0, VPX_RC_LF_UPDATE = 1, VPX_RC_GF_UPDATE = 2, VPX_RC_ARF_UPDATE = 3, VPX_RC_OVERLAY_UPDATE = 4, VPX_RC_MID_OVERLAY_UPDATE = 5, VPX_RC_USE_BUF_FRAME = 6, } vpx_rc_frame_update_type_t; /*!\brief Name for the ref frames returned by the external RC. * * Corresponds to the ref frames defined in vp9_blockd.h. */ typedef enum vpx_rc_ref_name { VPX_RC_INVALID_REF_FRAME = -1, VPX_RC_INTRA_FRAME = 0, VPX_RC_LAST_FRAME = 1, VPX_RC_GOLDEN_FRAME = 2, VPX_RC_ALTREF_FRAME = 3, } vpx_rc_ref_name_t; /*!\brief Abstract rate control model handler * * The encoder will receive the model handler from * vpx_rc_funcs_t::create_model(). */ typedef void *vpx_rc_model_t; /*!\brief A reserved value for the q index. * If the external rate control model returns this value, * the encoder will use the default q selected by libvpx's rate control * system. */ #define VPX_DEFAULT_Q -1 /*!\brief A reserved value for the rdmult. * If the external rate control model returns this value, * the encoder will use the default rdmult selected by libvpx's rate control * system. */ #define VPX_DEFAULT_RDMULT -1 /*!\brief Encode frame decision made by the external rate control model * * The encoder will receive the decision from the external rate control model * through vpx_rc_funcs_t::get_encodeframe_decision(). */ typedef struct vpx_rc_encodeframe_decision { int q_index; /**< Quantizer step index [0..255]*/ int rdmult; /**< Frame level Lagrangian multiplier*/ } vpx_rc_encodeframe_decision_t; /*!\brief Information for the frame to be encoded. * * The encoder will send the information to external rate control model through * vpx_rc_funcs_t::get_encodeframe_decision(). * */ typedef struct vpx_rc_encodeframe_info { /*! * 0: Key frame * 1: Inter frame * 2: Alternate reference frame * 3: Overlay frame * 4: Golden frame */ int frame_type; int show_index; /**< display index, starts from zero*/ int coding_index; /**< coding index, starts from zero*/ /*! * index of the current frame in this group of picture, starts from zero. */ int gop_index; int ref_frame_coding_indexes[3]; /**< three reference frames' coding indices*/ /*! * The validity of the three reference frames. * 0: Invalid * 1: Valid */ int ref_frame_valid_list[3]; /*! * The length of the current GOP. */ int gop_size; /*! * Whether the current GOP uses an alt ref. */ int use_alt_ref; } vpx_rc_encodeframe_info_t; /*!\brief Frame coding result * * The encoder will send the result to the external rate control model through * vpx_rc_funcs_t::update_encodeframe_result(). */ typedef struct vpx_rc_encodeframe_result { int64_t bit_count; /**< number of bits spent on coding the frame*/ int actual_encoding_qindex; /**< the actual qindex used to encode the frame*/ } vpx_rc_encodeframe_result_t; /*!\brief Status returned by rate control callback functions. */ typedef enum vpx_rc_status { VPX_RC_OK = 0, VPX_RC_ERROR = 1, } vpx_rc_status_t; /*!\brief First pass frame stats * This is a mirror of vp9's FIRSTPASS_STATS except that spatial_layer_id is * omitted */ typedef struct vpx_rc_frame_stats { /*! * Frame number in display order, if stats are for a single frame. * No real meaning for a collection of frames. */ double frame; /*! * Weight assigned to this frame (or total weight for the collection of * frames) currently based on intra factor and brightness factor. This is used * to distribute bits between easier and harder frames. */ double weight; /*! * Intra prediction error. */ double intra_error; /*! * Best of intra pred error and inter pred error using last frame as ref. */ double coded_error; /*! * Best of intra pred error and inter pred error using golden frame as ref. */ double sr_coded_error; /*! * Estimate the noise energy of the current frame. */ double frame_noise_energy; /*! * Percentage of blocks with inter pred error < intra pred error. */ double pcnt_inter; /*! * Percentage of blocks using (inter prediction and) non-zero motion vectors. */ double pcnt_motion; /*! * Percentage of blocks where golden frame was better than last or intra: * inter pred error using golden frame < inter pred error using last frame and * inter pred error using golden frame < intra pred error */ double pcnt_second_ref; /*! * Percentage of blocks where intra and inter prediction errors were very * close. */ double pcnt_neutral; /*! * Percentage of blocks that have intra error < inter error and inter error < * LOW_I_THRESH * - bit_depth 8: LOW_I_THRESH = 24000 * - bit_depth 10: LOW_I_THRESH = 24000 << 4 * - bit_depth 12: LOW_I_THRESH = 24000 << 8 */ double pcnt_intra_low; /*! * Percentage of blocks that have intra error < inter error and intra error < * LOW_I_THRESH but inter error >= LOW_I_THRESH LOW_I_THRESH * - bit_depth 8: LOW_I_THRESH = 24000 * - bit_depth 10: LOW_I_THRESH = 24000 << 4 * - bit_depth 12: LOW_I_THRESH = 24000 << 8 */ double pcnt_intra_high; /*! * Percentage of blocks that have almost no intra error residual * (i.e. are in effect completely flat and untextured in the intra * domain). In natural videos this is uncommon, but it is much more * common in animations, graphics and screen content, so may be used * as a signal to detect these types of content. */ double intra_skip_pct; /*! * Percentage of blocks that have intra error < SMOOTH_INTRA_THRESH * - bit_depth 8: SMOOTH_INTRA_THRESH = 4000 * - bit_depth 10: SMOOTH_INTRA_THRESH = 4000 << 4 * - bit_depth 12: SMOOTH_INTRA_THRESH = 4000 << 8 */ double intra_smooth_pct; /*! * Image mask rows top and bottom. */ double inactive_zone_rows; /*! * Image mask columns at left and right edges. */ double inactive_zone_cols; /*! * Mean of row motion vectors. */ double MVr; /*! * Mean of absolute value of row motion vectors. */ double mvr_abs; /*! * Mean of column motion vectors. */ double MVc; /*! * Mean of absolute value of column motion vectors. */ double mvc_abs; /*! * Variance of row motion vectors. */ double MVrv; /*! * Variance of column motion vectors. */ double MVcv; /*! * Value in range [-1,1] indicating fraction of row and column motion vectors * that point inwards (negative MV value) or outwards (positive MV value). * For example, value of 1 indicates, all row/column MVs are inwards. */ double mv_in_out_count; /*! * Duration of the frame / collection of frames. */ double duration; /*! * 1.0 if stats are for a single frame, or * number of frames whose stats are accumulated. */ double count; /*! * Number of new mv in a frame. */ double new_mv_count; } vpx_rc_frame_stats_t; /*!\brief Collection of first pass frame stats */ typedef struct vpx_rc_firstpass_stats { /*! * Pointer to first pass frame stats. * The pointed array of vpx_rc_frame_stats_t should have length equal to * number of show frames in the video. */ vpx_rc_frame_stats_t *frame_stats; /*! * Number of show frames in the video. */ int num_frames; } vpx_rc_firstpass_stats_t; /*!\brief Encode config sent to external rate control model */ typedef struct vpx_rc_config { int frame_width; /**< frame width */ int frame_height; /**< frame height */ int show_frame_count; /**< number of visible frames in the video */ int max_gf_interval; /**< max GOP size in number of show frames */ int min_gf_interval; /**< min GOP size in number of show frames */ /*! * Target bitrate in kilobytes per second */ int target_bitrate_kbps; int frame_rate_num; /**< numerator of frame rate */ int frame_rate_den; /**< denominator of frame rate */ /*! * The following fields are only for external rate control models that support * different rate control modes. */ vpx_ext_rc_mode_t rc_mode; /**< Q mode or VBR mode */ int overshoot_percent; /**< for VBR mode only */ int undershoot_percent; /**< for VBR mode only */ int base_qp; /**< base QP for leaf frames, 0-255 */ } vpx_rc_config_t; /*!\brief Control what ref frame to use and its index. */ typedef struct vpx_rc_ref_frame { /*! * Ref frame index. Corresponding to |lst_fb_idx|, |gld_fb_idx| or * |alt_fb_idx| in VP9_COMP depending on the ref frame #name. */ int index[VPX_RC_MAX_REF_FRAMES]; /*! * Ref frame name. This decides whether the #index is used as * |lst_fb_idx|, |gld_fb_idx| or |alt_fb_idx| in VP9_COMP. * */ vpx_rc_ref_name_t name[VPX_RC_MAX_REF_FRAMES]; } vpx_rc_ref_frame_t; /*!\brief The decision made by the external rate control model to set the * group of picture. */ typedef struct vpx_rc_gop_decision { int gop_coding_frames; /**< The number of frames of this GOP */ int use_alt_ref; /**< Whether to use alt ref for this GOP */ int use_key_frame; /**< Whether to set key frame for this GOP */ /*! * Frame type for each frame in this GOP. * This will be populated to |update_type| in GF_GROUP defined in * vp9_firstpass.h */ vpx_rc_frame_update_type_t update_type[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2]; /*! Ref frame buffer index to be updated for each frame in this GOP. */ int update_ref_index[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2]; /*! Ref frame list to be used for each frame in this GOP. */ vpx_rc_ref_frame_t ref_frame_list[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2]; } vpx_rc_gop_decision_t; /*!\brief The decision made by the external rate control model to set the * key frame location and the show frame count in the key frame group */ typedef struct vpx_rc_key_frame_decision { int key_frame_show_index; /**< This key frame's show index in the video */ int key_frame_group_size; /**< Show frame count of this key frame group */ } vpx_rc_key_frame_decision_t; /*!\brief Create an external rate control model callback prototype * * This callback is invoked by the encoder to create an external rate control * model. * * \param[in] priv Callback's private data * \param[in] ratectrl_config Pointer to vpx_rc_config_t * \param[out] rate_ctrl_model_ptr Pointer to vpx_rc_model_t */ typedef vpx_rc_status_t (*vpx_rc_create_model_cb_fn_t)( void *priv, const vpx_rc_config_t *ratectrl_config, vpx_rc_model_t *rate_ctrl_model_ptr); /*!\brief Send first pass stats to the external rate control model callback * prototype * * This callback is invoked by the encoder to send first pass stats to the * external rate control model. * * \param[in] rate_ctrl_model rate control model * \param[in] first_pass_stats first pass stats */ typedef vpx_rc_status_t (*vpx_rc_send_firstpass_stats_cb_fn_t)( vpx_rc_model_t rate_ctrl_model, const vpx_rc_firstpass_stats_t *first_pass_stats); /*!\brief Send TPL stats for the current GOP to the external rate control model * callback prototype * * This callback is invoked by the encoder to send TPL stats for the GOP to the * external rate control model. * * \param[in] rate_ctrl_model rate control model * \param[in] tpl_gop_stats TPL stats for current GOP */ typedef vpx_rc_status_t (*vpx_rc_send_tpl_gop_stats_cb_fn_t)( vpx_rc_model_t rate_ctrl_model, const VpxTplGopStats *tpl_gop_stats); /*!\brief Receive encode frame decision callback prototype * * This callback is invoked by the encoder to receive encode frame decision from * the external rate control model. * * \param[in] rate_ctrl_model rate control model * \param[in] frame_gop_index index of the frame in current gop * \param[out] frame_decision encode decision of the coding frame */ typedef vpx_rc_status_t (*vpx_rc_get_encodeframe_decision_cb_fn_t)( vpx_rc_model_t rate_ctrl_model, const int frame_gop_index, vpx_rc_encodeframe_decision_t *frame_decision); /*!\brief Update encode frame result callback prototype * * This callback is invoked by the encoder to update encode frame result to the * external rate control model. * * \param[in] rate_ctrl_model rate control model * \param[out] encode_frame_result encode result of the coding frame */ typedef vpx_rc_status_t (*vpx_rc_update_encodeframe_result_cb_fn_t)( vpx_rc_model_t rate_ctrl_model, const vpx_rc_encodeframe_result_t *encode_frame_result); /*!\brief Get the key frame decision from the external rate control model. * * This callback is invoked by the encoder to get key frame decision from * the external rate control model. * * \param[in] rate_ctrl_model rate control model * \param[out] key_frame_decision key frame decision from the model */ typedef vpx_rc_status_t (*vpx_rc_get_key_frame_decision_cb_fn_t)( vpx_rc_model_t rate_ctrl_model, vpx_rc_key_frame_decision_t *key_frame_decision); /*!\brief Get the GOP structure from the external rate control model. * * This callback is invoked by the encoder to get GOP decisions from * the external rate control model. * * \param[in] rate_ctrl_model rate control model * \param[out] gop_decision GOP decision from the model */ typedef vpx_rc_status_t (*vpx_rc_get_gop_decision_cb_fn_t)( vpx_rc_model_t rate_ctrl_model, vpx_rc_gop_decision_t *gop_decision); /*!\brief Get the frame rdmult from the external rate control model. * * This callback is invoked by the encoder to get rdmult from * the external rate control model. * * \param[in] rate_ctrl_model rate control model * \param[in] frame_info information collected from the encoder * \param[out] rdmult frame rate-distortion multiplier from the model */ typedef vpx_rc_status_t (*vpx_rc_get_frame_rdmult_cb_fn_t)( vpx_rc_model_t rate_ctrl_model, const vpx_rc_encodeframe_info_t *frame_info, int *rdmult); /*!\brief Delete the external rate control model callback prototype * * This callback is invoked by the encoder to delete the external rate control * model. * * \param[in] rate_ctrl_model rate control model */ typedef vpx_rc_status_t (*vpx_rc_delete_model_cb_fn_t)( vpx_rc_model_t rate_ctrl_model); /*!\brief Callback function set for external rate control. * * The user can enable external rate control by registering * a set of callback functions with the codec control flag * #VP9E_SET_EXTERNAL_RATE_CONTROL. */ typedef struct vpx_rc_funcs { /*! * The rate control type of this API. */ vpx_rc_type_t rc_type; /*! * Create an external rate control model. */ vpx_rc_create_model_cb_fn_t create_model; /*! * Send first pass stats to the external rate control model. */ vpx_rc_send_firstpass_stats_cb_fn_t send_firstpass_stats; /*! * Send TPL stats for current GOP to the external rate control model. */ vpx_rc_send_tpl_gop_stats_cb_fn_t send_tpl_gop_stats; /*! * Get encodeframe decision from the external rate control model. */ vpx_rc_get_encodeframe_decision_cb_fn_t get_encodeframe_decision; /*! * Update encodeframe result to the external rate control model. */ vpx_rc_update_encodeframe_result_cb_fn_t update_encodeframe_result; /*! * Get key frame decision from the external rate control model. */ vpx_rc_get_key_frame_decision_cb_fn_t get_key_frame_decision; /*! * Get GOP decisions from the external rate control model. */ vpx_rc_get_gop_decision_cb_fn_t get_gop_decision; /*! * Get rdmult for the frame from the external rate control model. */ vpx_rc_get_frame_rdmult_cb_fn_t get_frame_rdmult; /*! * Delete the external rate control model. */ vpx_rc_delete_model_cb_fn_t delete_model; /*! * Rate control log path. */ const char *rate_ctrl_log_path; /*! * Private data for the external rate control model. */ void *priv; } vpx_rc_funcs_t; #ifdef __cplusplus } // extern "C" #endif # 587 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_ext_ratectrl.h" #endif // VPX_VPX_VPX_EXT_RATECTRL_H_ # 589 "../../third_party/libvpx/source/libvpx/vpx/internal/.././vpx_ext_ratectrl.h" #endif /* vpx_ext_ratectrl.h expanded by -frewrite-includes */ # 34 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_encoder.h" 2 /*! Temporal Scalability: Maximum length of the sequence defining frame * layer membership */ #define VPX_TS_MAX_PERIODICITY 16 /*! Temporal Scalability: Maximum number of coding layers */ #define VPX_TS_MAX_LAYERS 5 /*! Temporal+Spatial Scalability: Maximum number of coding layers */ #define VPX_MAX_LAYERS 12 // 3 temporal + 4 spatial layers are allowed. /*! Spatial Scalability: Maximum number of coding layers */ #define VPX_SS_MAX_LAYERS 5 /*! Spatial Scalability: Default number of coding layers */ #define VPX_SS_DEFAULT_LAYERS 1 /*!\brief Current ABI version number * * \internal * If this file is altered in any way that changes the ABI, this value * must be bumped. Examples include, but are not limited to, changing * types, removing or reassigning enums, adding/removing/rearranging * fields to structures * * \note * VPX_ENCODER_ABI_VERSION has a VPX_EXT_RATECTRL_ABI_VERSION component * because the VP9E_SET_EXTERNAL_RATE_CONTROL codec control uses * vpx_rc_funcs_t. */ #define VPX_ENCODER_ABI_VERSION \ (18 + VPX_CODEC_ABI_VERSION + \ VPX_EXT_RATECTRL_ABI_VERSION) /**<\hideinitializer*/ /*! \brief Encoder capabilities bitfield * * Each encoder advertises the capabilities it supports as part of its * ::vpx_codec_iface_t interface structure. Capabilities are extra * interfaces or functionality, and are not required to be supported * by an encoder. * * The available flags are specified by VPX_CODEC_CAP_* defines. */ #define VPX_CODEC_CAP_PSNR 0x10000 /**< Can issue PSNR packets */ /*! Can output one partition at a time. Each partition is returned in its * own VPX_CODEC_CX_FRAME_PKT, with the FRAME_IS_FRAGMENT flag set for * every partition but the last. In this mode all frames are always * returned partition by partition. */ #define VPX_CODEC_CAP_OUTPUT_PARTITION 0x20000 /*! \brief Initialization-time Feature Enabling * * Certain codec features must be known at initialization time, to allow * for proper memory allocation. * * The available flags are specified by VPX_CODEC_USE_* defines. */ #define VPX_CODEC_USE_PSNR 0x10000 /**< Calculate PSNR on each frame */ /*!\brief Make the encoder output one partition at a time. */ #define VPX_CODEC_USE_OUTPUT_PARTITION 0x20000 #define VPX_CODEC_USE_HIGHBITDEPTH 0x40000 /**< Use high bitdepth */ /*!\brief Generic fixed size buffer structure * * This structure is able to hold a reference to any fixed size buffer. */ typedef struct vpx_fixed_buf { void *buf; /**< Pointer to the data */ size_t sz; /**< Length of the buffer, in chars */ } vpx_fixed_buf_t; /**< alias for struct vpx_fixed_buf */ /*!\brief Time Stamp Type * * An integer, which when multiplied by the stream's time base, provides * the absolute time of a sample. */ typedef int64_t vpx_codec_pts_t; /*!\brief Compressed Frame Flags * * This type represents a bitfield containing information about a compressed * frame that may be useful to an application. The most significant 16 bits * can be used by an algorithm to provide additional detail, for example to * support frame types that are codec specific (MPEG-1 D-frames for example) */ typedef uint32_t vpx_codec_frame_flags_t; #define VPX_FRAME_IS_KEY 0x1u /**< frame is the start of a GOP */ /*!\brief frame can be dropped without affecting the stream (no future frame * depends on this one) */ #define VPX_FRAME_IS_DROPPABLE 0x2u /*!\brief frame should be decoded but will not be shown */ #define VPX_FRAME_IS_INVISIBLE 0x4u /*!\brief this is a fragment of the encoded frame */ #define VPX_FRAME_IS_FRAGMENT 0x8u /*!\brief Error Resilient flags * * These flags define which error resilient features to enable in the * encoder. The flags are specified through the * vpx_codec_enc_cfg::g_error_resilient variable. */ typedef uint32_t vpx_codec_er_flags_t; /*!\brief Improve resiliency against losses of whole frames */ #define VPX_ERROR_RESILIENT_DEFAULT 0x1u /*!\brief The frame partitions are independently decodable by the bool decoder, * meaning that partitions can be decoded even though earlier partitions have * been lost. Note that intra prediction is still done over the partition * boundary. * \note This is only supported by VP8.*/ #define VPX_ERROR_RESILIENT_PARTITIONS 0x2u /*!\brief Encoder output packet variants * * This enumeration lists the different kinds of data packets that can be * returned by calls to vpx_codec_get_cx_data(). Algorithms \ref MAY * extend this list to provide additional functionality. */ enum vpx_codec_cx_pkt_kind { VPX_CODEC_CX_FRAME_PKT, /**< Compressed video frame */ VPX_CODEC_STATS_PKT, /**< Two-pass statistics for this frame */ VPX_CODEC_FPMB_STATS_PKT, /**< first pass mb statistics for this frame */ VPX_CODEC_PSNR_PKT, /**< PSNR statistics for this frame */ VPX_CODEC_CUSTOM_PKT = 256 /**< Algorithm extensions */ }; /*!\brief Encoder output packet * * This structure contains the different kinds of output data the encoder * may produce while compressing a frame. */ typedef struct vpx_codec_cx_pkt { enum vpx_codec_cx_pkt_kind kind; /**< packet variant */ union { struct { void *buf; /**< compressed data buffer */ size_t sz; /**< length of compressed data */ /*!\brief time stamp to show frame (in timebase units) */ vpx_codec_pts_t pts; /*!\brief duration to show frame (in timebase units) */ unsigned long duration; vpx_codec_frame_flags_t flags; /**< flags for this frame */ /*!\brief the partition id defines the decoding order of the partitions. * Only applicable when "output partition" mode is enabled. First * partition has id 0.*/ int partition_id; /*!\brief Width and height of frames in this packet. VP8 will only use the * first one.*/ unsigned int width[VPX_SS_MAX_LAYERS]; /**< frame width */ unsigned int height[VPX_SS_MAX_LAYERS]; /**< frame height */ /*!\brief Flag to indicate if spatial layer frame in this packet is * encoded or dropped. VP8 will always be set to 1.*/ uint8_t spatial_layer_encoded[VPX_SS_MAX_LAYERS]; } frame; /**< data for compressed frame packet */ vpx_fixed_buf_t twopass_stats; /**< data for two-pass packet */ vpx_fixed_buf_t firstpass_mb_stats; /**< first pass mb packet */ struct vpx_psnr_pkt { unsigned int samples[4]; /**< Number of samples, total/y/u/v */ uint64_t sse[4]; /**< sum squared error, total/y/u/v */ double psnr[4]; /**< PSNR, total/y/u/v */ } psnr; /**< data for PSNR packet */ vpx_fixed_buf_t raw; /**< data for arbitrary packets */ /* This packet size is fixed to allow codecs to extend this * interface without having to manage storage for raw packets, * i.e., if it's smaller than 128 bytes, you can store in the * packet list directly. */ char pad[128 - sizeof(enum vpx_codec_cx_pkt_kind)]; /**< fixed sz */ } data; /**< packet data */ } vpx_codec_cx_pkt_t; /**< alias for struct vpx_codec_cx_pkt */ /*!\brief Encoder return output buffer callback * * This callback function, when registered, returns with packets when each * spatial layer is encoded. */ typedef void (*vpx_codec_enc_output_cx_pkt_cb_fn_t)(vpx_codec_cx_pkt_t *pkt, void *user_data); /*!\brief Callback function pointer / user data pair storage */ typedef struct vpx_codec_enc_output_cx_cb_pair { vpx_codec_enc_output_cx_pkt_cb_fn_t output_cx_pkt; /**< Callback function */ void *user_priv; /**< Pointer to private data */ } vpx_codec_priv_output_cx_pkt_cb_pair_t; /*!\brief Rational Number * * This structure holds a fractional value. */ typedef struct vpx_rational { int num; /**< fraction numerator */ int den; /**< fraction denominator */ } vpx_rational_t; /**< alias for struct vpx_rational */ /*!\brief Multi-pass Encoding Pass */ typedef enum vpx_enc_pass { VPX_RC_ONE_PASS, /**< Single pass mode */ VPX_RC_FIRST_PASS, /**< First pass of multi-pass mode */ VPX_RC_LAST_PASS /**< Final pass of multi-pass mode */ } vpx_enc_pass; /*!\brief Rate control mode */ enum vpx_rc_mode { VPX_VBR, /**< Variable Bit Rate (VBR) mode */ VPX_CBR, /**< Constant Bit Rate (CBR) mode */ VPX_CQ, /**< Constrained Quality (CQ) mode */ VPX_Q, /**< Constant Quality (Q) mode */ }; /*!\brief Keyframe placement mode. * * This enumeration determines whether keyframes are placed automatically by * the encoder or whether this behavior is disabled. Older releases of this * SDK were implemented such that VPX_KF_FIXED meant keyframes were disabled. * This name is confusing for this behavior, so the new symbols to be used * are VPX_KF_AUTO and VPX_KF_DISABLED. */ enum vpx_kf_mode { VPX_KF_FIXED, /**< deprecated, implies VPX_KF_DISABLED */ VPX_KF_AUTO, /**< Encoder determines optimal placement automatically */ VPX_KF_DISABLED = 0 /**< Encoder does not place keyframes. */ }; /*!\brief Encoded Frame Flags * * This type indicates a bitfield to be passed to vpx_codec_encode(), defining * per-frame boolean values. By convention, bits common to all codecs will be * named VPX_EFLAG_*, and bits specific to an algorithm will be named * /algo/_eflag_*. The lower order 16 bits are reserved for common use. */ typedef long vpx_enc_frame_flags_t; #define VPX_EFLAG_FORCE_KF (1 << 0) /**< Force this frame to be a keyframe */ /*!\brief Encoder configuration structure * * This structure contains the encoder settings that have common representations * across all codecs. This doesn't imply that all codecs support all features, * however. */ typedef struct vpx_codec_enc_cfg { /* * generic settings (g) */ /*!\brief Deprecated: Algorithm specific "usage" value * * This value must be zero. */ unsigned int g_usage; /*!\brief Maximum number of threads to use * * For multi-threaded implementations, use no more than this number of * threads. The codec may use fewer threads than allowed. The value * 0 is equivalent to the value 1. */ unsigned int g_threads; /*!\brief Bitstream profile to use * * Some codecs support a notion of multiple bitstream profiles. Typically * this maps to a set of features that are turned on or off. Often the * profile to use is determined by the features of the intended decoder. * Consult the documentation for the codec to determine the valid values * for this parameter, or set to zero for a sane default. */ unsigned int g_profile; /**< profile of bitstream to use */ /*!\brief Width of the frame * * This value identifies the presentation resolution of the frame, * in pixels. Note that the frames passed as input to the encoder must * have this resolution. Frames will be presented by the decoder in this * resolution, independent of any spatial resampling the encoder may do. */ unsigned int g_w; /*!\brief Height of the frame * * This value identifies the presentation resolution of the frame, * in pixels. Note that the frames passed as input to the encoder must * have this resolution. Frames will be presented by the decoder in this * resolution, independent of any spatial resampling the encoder may do. */ unsigned int g_h; /*!\brief Bit-depth of the codec * * This value identifies the bit_depth of the codec, * Only certain bit-depths are supported as identified in the * vpx_bit_depth_t enum. */ vpx_bit_depth_t g_bit_depth; /*!\brief Bit-depth of the input frames * * This value identifies the bit_depth of the input frames in bits. * Note that the frames passed as input to the encoder must have * this bit-depth. */ unsigned int g_input_bit_depth; /*!\brief Stream timebase units * * Indicates the smallest interval of time, in seconds, used by the stream. * For fixed frame rate material, or variable frame rate material where * frames are timed at a multiple of a given clock (ex: video capture), * the \ref RECOMMENDED method is to set the timebase to the reciprocal * of the frame rate (ex: 1001/30000 for 29.970 Hz NTSC). This allows the * pts to correspond to the frame number, which can be handy. For * re-encoding video from containers with absolute time timestamps, the * \ref RECOMMENDED method is to set the timebase to that of the parent * container or multimedia framework (ex: 1/1000 for ms, as in FLV). */ struct vpx_rational g_timebase; /*!\brief Enable error resilient modes. * * The error resilient bitfield indicates to the encoder which features * it should enable to take measures for streaming over lossy or noisy * links. */ vpx_codec_er_flags_t g_error_resilient; /*!\brief Multi-pass Encoding Mode * * This value should be set to the current phase for multi-pass encoding. * For single pass, set to #VPX_RC_ONE_PASS. */ enum vpx_enc_pass g_pass; /*!\brief Allow lagged encoding * * If set, this value allows the encoder to consume a number of input * frames before producing output frames. This allows the encoder to * base decisions for the current frame on future frames. This does * increase the latency of the encoding pipeline, so it is not appropriate * in all situations (ex: realtime encoding). * * Note that this is a maximum value -- the encoder may produce frames * sooner than the given limit. Set this value to 0 to disable this * feature. */ unsigned int g_lag_in_frames; /* * rate control settings (rc) */ /*!\brief Temporal resampling configuration, if supported by the codec. * * Temporal resampling allows the codec to "drop" frames as a strategy to * meet its target data rate. This can cause temporal discontinuities in * the encoded video, which may appear as stuttering during playback. This * trade-off is often acceptable, but for many applications is not. It can * be disabled in these cases. * * This threshold is described as a percentage of the target data buffer. * When the data buffer falls below this percentage of fullness, a * dropped frame is indicated. Set the threshold to zero (0) to disable * this feature. */ unsigned int rc_dropframe_thresh; /*!\brief Enable/disable spatial resampling, if supported by the codec. * * Spatial resampling allows the codec to compress a lower resolution * version of the frame, which is then upscaled by the encoder to the * correct presentation resolution. This increases visual quality at * low data rates, at the expense of CPU time on the encoder/decoder. */ unsigned int rc_resize_allowed; /*!\brief Internal coded frame width. * * If spatial resampling is enabled this specifies the width of the * encoded frame. */ unsigned int rc_scaled_width; /*!\brief Internal coded frame height. * * If spatial resampling is enabled this specifies the height of the * encoded frame. */ unsigned int rc_scaled_height; /*!\brief Spatial resampling up watermark. * * This threshold is described as a percentage of the target data buffer. * When the data buffer rises above this percentage of fullness, the * encoder will step up to a higher resolution version of the frame. */ unsigned int rc_resize_up_thresh; /*!\brief Spatial resampling down watermark. * * This threshold is described as a percentage of the target data buffer. * When the data buffer falls below this percentage of fullness, the * encoder will step down to a lower resolution version of the frame. */ unsigned int rc_resize_down_thresh; /*!\brief Rate control algorithm to use. * * Indicates whether the end usage of this stream is to be streamed over * a bandwidth constrained link, indicating that Constant Bit Rate (CBR) * mode should be used, or whether it will be played back on a high * bandwidth link, as from a local disk, where higher variations in * bitrate are acceptable. */ enum vpx_rc_mode rc_end_usage; /*!\brief Two-pass stats buffer. * * A buffer containing all of the stats packets produced in the first * pass, concatenated. */ vpx_fixed_buf_t rc_twopass_stats_in; /*!\brief first pass mb stats buffer. * * A buffer containing all of the first pass mb stats packets produced * in the first pass, concatenated. */ vpx_fixed_buf_t rc_firstpass_mb_stats_in; /*!\brief Target data rate * * Target bitrate to use for this stream, in kilobits per second. * Internally capped to the smaller of the uncompressed bitrate and * 1000000 kilobits per second. */ unsigned int rc_target_bitrate; /* * quantizer settings */ /*!\brief Minimum (Best Quality) Quantizer * * The quantizer is the most direct control over the quality of the * encoded image. The range of valid values for the quantizer is codec * specific. Consult the documentation for the codec to determine the * values to use. */ unsigned int rc_min_quantizer; /*!\brief Maximum (Worst Quality) Quantizer * * The quantizer is the most direct control over the quality of the * encoded image. The range of valid values for the quantizer is codec * specific. Consult the documentation for the codec to determine the * values to use. */ unsigned int rc_max_quantizer; /* * bitrate tolerance */ /*!\brief Rate control adaptation undershoot control * * VP8: Expressed as a percentage of the target bitrate, * controls the maximum allowed adaptation speed of the codec. * This factor controls the maximum amount of bits that can * be subtracted from the target bitrate in order to compensate * for prior overshoot. * VP9: Expressed as a percentage of the target bitrate, a threshold * undershoot level (current rate vs target) beyond which more aggressive * corrective measures are taken. * * * Valid values in the range VP8:0-100 VP9: 0-100. */ unsigned int rc_undershoot_pct; /*!\brief Rate control adaptation overshoot control * * VP8: Expressed as a percentage of the target bitrate, * controls the maximum allowed adaptation speed of the codec. * This factor controls the maximum amount of bits that can * be added to the target bitrate in order to compensate for * prior undershoot. * VP9: Expressed as a percentage of the target bitrate, a threshold * overshoot level (current rate vs target) beyond which more aggressive * corrective measures are taken. * * Valid values in the range VP8:0-100 VP9: 0-100. */ unsigned int rc_overshoot_pct; /* * decoder buffer model parameters */ /*!\brief Decoder Buffer Size * * This value indicates the amount of data that may be buffered by the * decoding application. Note that this value is expressed in units of * time (milliseconds). For example, a value of 5000 indicates that the * client will buffer (at least) 5000ms worth of encoded data. Use the * target bitrate (#rc_target_bitrate) to convert to bits/bytes, if * necessary. */ unsigned int rc_buf_sz; /*!\brief Decoder Buffer Initial Size * * This value indicates the amount of data that will be buffered by the * decoding application prior to beginning playback. This value is * expressed in units of time (milliseconds). Use the target bitrate * (#rc_target_bitrate) to convert to bits/bytes, if necessary. */ unsigned int rc_buf_initial_sz; /*!\brief Decoder Buffer Optimal Size * * This value indicates the amount of data that the encoder should try * to maintain in the decoder's buffer. This value is expressed in units * of time (milliseconds). Use the target bitrate (#rc_target_bitrate) * to convert to bits/bytes, if necessary. */ unsigned int rc_buf_optimal_sz; /* * 2 pass rate control parameters */ /*!\brief Two-pass mode CBR/VBR bias * * Bias, expressed on a scale of 0 to 100, for determining target size * for the current frame. The value 0 indicates the optimal CBR mode * value should be used. The value 100 indicates the optimal VBR mode * value should be used. Values in between indicate which way the * encoder should "lean." */ unsigned int rc_2pass_vbr_bias_pct; /*!\brief Two-pass mode per-GOP minimum bitrate * * This value, expressed as a percentage of the target bitrate, indicates * the minimum bitrate to be used for a single GOP (aka "section") */ unsigned int rc_2pass_vbr_minsection_pct; /*!\brief Two-pass mode per-GOP maximum bitrate * * This value, expressed as a percentage of the target bitrate, indicates * the maximum bitrate to be used for a single GOP (aka "section") */ unsigned int rc_2pass_vbr_maxsection_pct; /*!\brief Two-pass corpus vbr mode complexity control * Used only in VP9: A value representing the corpus midpoint complexity * for corpus vbr mode. This value defaults to 0 which disables corpus vbr * mode in favour of normal vbr mode. */ unsigned int rc_2pass_vbr_corpus_complexity; /* * keyframing settings (kf) */ /*!\brief Keyframe placement mode * * This value indicates whether the encoder should place keyframes at a * fixed interval, or determine the optimal placement automatically * (as governed by the #kf_min_dist and #kf_max_dist parameters) */ enum vpx_kf_mode kf_mode; /*!\brief Keyframe minimum interval * * This value, expressed as a number of frames, prevents the encoder from * placing a keyframe nearer than kf_min_dist to the previous keyframe. At * least kf_min_dist frames non-keyframes will be coded before the next * keyframe. Set kf_min_dist equal to kf_max_dist for a fixed interval. */ unsigned int kf_min_dist; /*!\brief Keyframe maximum interval * * This value, expressed as a number of frames, forces the encoder to code * a keyframe if one has not been coded in the last kf_max_dist frames. * A value of 0 implies all frames will be keyframes. Set kf_min_dist * equal to kf_max_dist for a fixed interval. */ unsigned int kf_max_dist; /* * Spatial scalability settings (ss) */ /*!\brief Number of spatial coding layers. * * This value specifies the number of spatial coding layers to be used. */ unsigned int ss_number_layers; /*!\brief Enable auto alt reference flags for each spatial layer. * * These values specify if auto alt reference frame is enabled for each * spatial layer. */ int ss_enable_auto_alt_ref[VPX_SS_MAX_LAYERS]; /*!\brief Target bitrate for each spatial layer. * * These values specify the target coding bitrate to be used for each * spatial layer. (in kbps) */ unsigned int ss_target_bitrate[VPX_SS_MAX_LAYERS]; /*!\brief Number of temporal coding layers. * * This value specifies the number of temporal layers to be used. */ unsigned int ts_number_layers; /*!\brief Target bitrate for each temporal layer. * * These values specify the target coding bitrate to be used for each * temporal layer. (in kbps) */ unsigned int ts_target_bitrate[VPX_TS_MAX_LAYERS]; /*!\brief Frame rate decimation factor for each temporal layer. * * These values specify the frame rate decimation factors to apply * to each temporal layer. */ unsigned int ts_rate_decimator[VPX_TS_MAX_LAYERS]; /*!\brief Length of the sequence defining frame temporal layer membership. * * This value specifies the length of the sequence that defines the * membership of frames to temporal layers. For example, if the * ts_periodicity = 8, then the frames are assigned to coding layers with a * repeated sequence of length 8. */ unsigned int ts_periodicity; /*!\brief Template defining the membership of frames to temporal layers. * * This array defines the membership of frames to temporal coding layers. * For a 2-layer encoding that assigns even numbered frames to one temporal * layer (0) and odd numbered frames to a second temporal layer (1) with * ts_periodicity=8, then ts_layer_id = (0,1,0,1,0,1,0,1). */ unsigned int ts_layer_id[VPX_TS_MAX_PERIODICITY]; /*!\brief Target bitrate for each spatial/temporal layer. * * These values specify the target coding bitrate to be used for each * spatial/temporal layer. (in kbps) * */ unsigned int layer_target_bitrate[VPX_MAX_LAYERS]; /*!\brief Temporal layering mode indicating which temporal layering scheme to * use. * * The value (refer to VP9E_TEMPORAL_LAYERING_MODE) specifies the * temporal layering mode to use. * */ int temporal_layering_mode; /*!\brief A flag indicating whether to use external rate control parameters. * By default is 0. If set to 1, the following parameters will be used in the * rate control system. */ int use_vizier_rc_params; /*!\brief Active worst quality factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t active_wq_factor; /*!\brief Error per macroblock adjustment factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t err_per_mb_factor; /*!\brief Second reference default decay limit. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t sr_default_decay_limit; /*!\brief Second reference difference factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t sr_diff_factor; /*!\brief Keyframe error per macroblock adjustment factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t kf_err_per_mb_factor; /*!\brief Keyframe minimum boost adjustment factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t kf_frame_min_boost_factor; /*!\brief Keyframe maximum boost adjustment factor, for the first keyframe * in a chunk. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t kf_frame_max_boost_first_factor; /*!\brief Keyframe maximum boost adjustment factor, for subsequent keyframes. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t kf_frame_max_boost_subs_factor; /*!\brief Keyframe maximum total boost adjustment factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t kf_max_total_boost_factor; /*!\brief Golden frame maximum total boost adjustment factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t gf_max_total_boost_factor; /*!\brief Golden frame maximum boost adjustment factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t gf_frame_max_boost_factor; /*!\brief Zero motion power factor. * * Rate control parameters, set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t zm_factor; /*!\brief Rate-distortion multiplier for inter frames. * The multiplier is a crucial parameter in the calculation of rate distortion * cost. It is often related to the qp (qindex) value. * Rate control parameters, could be set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t rd_mult_inter_qp_fac; /*!\brief Rate-distortion multiplier for alt-ref frames. * The multiplier is a crucial parameter in the calculation of rate distortion * cost. It is often related to the qp (qindex) value. * Rate control parameters, could be set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t rd_mult_arf_qp_fac; /*!\brief Rate-distortion multiplier for key frames. * The multiplier is a crucial parameter in the calculation of rate distortion * cost. It is often related to the qp (qindex) value. * Rate control parameters, could be set from external experiment results. * Only when |use_vizier_rc_params| is set to 1, the pass in value will be * used. Otherwise, the default value is used. * */ vpx_rational_t rd_mult_key_qp_fac; } vpx_codec_enc_cfg_t; /**< alias for struct vpx_codec_enc_cfg */ /*!\brief vp9 svc extra configure parameters * * This defines max/min quantizers and scale factors for each layer * */ typedef struct vpx_svc_parameters { int max_quantizers[VPX_MAX_LAYERS]; /**< Max Q for each layer */ int min_quantizers[VPX_MAX_LAYERS]; /**< Min Q for each layer */ int scaling_factor_num[VPX_MAX_LAYERS]; /**< Scaling factor-numerator */ int scaling_factor_den[VPX_MAX_LAYERS]; /**< Scaling factor-denominator */ int speed_per_layer[VPX_MAX_LAYERS]; /**< Speed setting for each sl */ int temporal_layering_mode; /**< Temporal layering mode */ int loopfilter_ctrl[VPX_MAX_LAYERS]; /**< Loopfilter ctrl for each sl */ } vpx_svc_extra_cfg_t; /*!\brief Initialize an encoder instance * * Initializes an encoder context using the given interface. Applications * should call the vpx_codec_enc_init convenience macro instead of this * function directly, to ensure that the ABI version number parameter * is properly initialized. * * If the library was configured with --disable-multithread, this call * is not thread safe and should be guarded with a lock if being used * in a multithreaded context. * * If vpx_codec_enc_init_ver() fails, it is not necessary to call * vpx_codec_destroy() on the encoder context. * * \param[in] ctx Pointer to this instance's context. * \param[in] iface Pointer to the algorithm interface to use. * \param[in] cfg Configuration to use, if known. May be NULL. * \param[in] flags Bitfield of VPX_CODEC_USE_* flags * \param[in] ver ABI version number. Must be set to * VPX_ENCODER_ABI_VERSION * \retval #VPX_CODEC_OK * The decoder algorithm initialized. * \retval #VPX_CODEC_MEM_ERROR * Memory allocation failed. */ vpx_codec_err_t vpx_codec_enc_init_ver(vpx_codec_ctx_t *ctx, vpx_codec_iface_t *iface, const vpx_codec_enc_cfg_t *cfg, vpx_codec_flags_t flags, int ver); /*!\brief Convenience macro for vpx_codec_enc_init_ver() * * Ensures the ABI version parameter is properly set. */ #define vpx_codec_enc_init(ctx, iface, cfg, flags) \ vpx_codec_enc_init_ver(ctx, iface, cfg, flags, VPX_ENCODER_ABI_VERSION) /*!\brief Initialize multi-encoder instance * * Initializes multi-encoder context using the given interface. * Applications should call the vpx_codec_enc_init_multi convenience macro * instead of this function directly, to ensure that the ABI version number * parameter is properly initialized. * * \param[in] ctx Pointer to this instance's context. * \param[in] iface Pointer to the algorithm interface to use. * \param[in] cfg Configuration to use, if known. May be NULL. * \param[in] num_enc Total number of encoders. * \param[in] flags Bitfield of VPX_CODEC_USE_* flags * \param[in] dsf Pointer to down-sampling factors. * \param[in] ver ABI version number. Must be set to * VPX_ENCODER_ABI_VERSION * \retval #VPX_CODEC_OK * The encoder algorithm has been initialized. * \retval #VPX_CODEC_MEM_ERROR * Memory allocation failed. */ vpx_codec_err_t vpx_codec_enc_init_multi_ver( vpx_codec_ctx_t *ctx, vpx_codec_iface_t *iface, vpx_codec_enc_cfg_t *cfg, int num_enc, vpx_codec_flags_t flags, vpx_rational_t *dsf, int ver); /*!\brief Convenience macro for vpx_codec_enc_init_multi_ver() * * Ensures the ABI version parameter is properly set. */ #define vpx_codec_enc_init_multi(ctx, iface, cfg, num_enc, flags, dsf) \ vpx_codec_enc_init_multi_ver(ctx, iface, cfg, num_enc, flags, dsf, \ VPX_ENCODER_ABI_VERSION) /*!\brief Get a default configuration * * Initializes a encoder configuration structure with default values. Supports * the notion of "usages" so that an algorithm may offer different default * settings depending on the user's intended goal. This function \ref SHOULD * be called by all applications to initialize the configuration structure * before specializing the configuration with application specific values. * * \param[in] iface Pointer to the algorithm interface to use. * \param[out] cfg Configuration buffer to populate. * \param[in] usage Must be set to 0. * * \retval #VPX_CODEC_OK * The configuration was populated. * \retval #VPX_CODEC_INCAPABLE * Interface is not an encoder interface. * \retval #VPX_CODEC_INVALID_PARAM * A parameter was NULL, or the usage value was not recognized. */ vpx_codec_err_t vpx_codec_enc_config_default(vpx_codec_iface_t *iface, vpx_codec_enc_cfg_t *cfg, unsigned int usage); /*!\brief Set or change configuration * * Reconfigures an encoder instance according to the given configuration. * * \param[in] ctx Pointer to this instance's context * \param[in] cfg Configuration buffer to use * * \retval #VPX_CODEC_OK * The configuration was populated. * \retval #VPX_CODEC_INCAPABLE * Interface is not an encoder interface. * \retval #VPX_CODEC_INVALID_PARAM * A parameter was NULL, or the usage value was not recognized. */ vpx_codec_err_t vpx_codec_enc_config_set(vpx_codec_ctx_t *ctx, const vpx_codec_enc_cfg_t *cfg); /*!\brief Get global stream headers * * Retrieves a stream level global header packet, if supported by the codec. * * \li VP8: Unsupported * \li VP9: Returns a buffer of ID (1 byte)|Length (1 byte)|Length * bytes values. The function should be called after encoding to retrieve * the most accurate information. * * \param[in] ctx Pointer to this instance's context * * \retval NULL * Encoder does not support global header * \retval Non-NULL * Pointer to buffer containing global header packet. The buffer pointer * and its contents are only valid for the lifetime of \a ctx. The contents * may change in subsequent calls to the function. * \sa * https://www.webmproject.org/docs/container/#vp9-codec-feature-metadata-codecprivate */ vpx_fixed_buf_t *vpx_codec_get_global_headers(vpx_codec_ctx_t *ctx); /*!\brief Encode Deadline * * This type indicates a deadline, in microseconds, to be passed to * vpx_codec_encode(). */ typedef unsigned long vpx_enc_deadline_t; /*!\brief deadline parameter analogous to VPx REALTIME mode. */ #define VPX_DL_REALTIME 1ul /*!\brief deadline parameter analogous to VPx GOOD QUALITY mode. */ #define VPX_DL_GOOD_QUALITY 1000000ul /*!\brief deadline parameter analogous to VPx BEST QUALITY mode. */ #define VPX_DL_BEST_QUALITY 0ul /*!\brief Encode a frame * * Encodes a video frame at the given "presentation time." The presentation * time stamp (PTS) \ref MUST be strictly increasing. * * The encoder supports the notion of a soft real-time deadline. Given a * non-zero value to the deadline parameter, the encoder will make a "best * effort" guarantee to return before the given time slice expires. It is * implicit that limiting the available time to encode will degrade the * output quality. The encoder can be given an unlimited time to produce the * best possible frame by specifying a deadline of '0'. This deadline * supersedes the VPx notion of "best quality, good quality, realtime". * Applications that wish to map these former settings to the new deadline * based system can use the symbols #VPX_DL_REALTIME, #VPX_DL_GOOD_QUALITY, * and #VPX_DL_BEST_QUALITY. * * When the last frame has been passed to the encoder, this function should * continue to be called, with the img parameter set to NULL. This will * signal the end-of-stream condition to the encoder and allow it to encode * any held buffers. Encoding is complete when vpx_codec_encode() is called * and vpx_codec_get_cx_data() returns no data. * * \param[in] ctx Pointer to this instance's context * \param[in] img Image data to encode, NULL to flush. * Encoding sample values outside the range * [0..(1<bit_depth)-1] is undefined behavior. * \param[in] pts Presentation time stamp, in timebase units. * \param[in] duration Duration to show frame, in timebase units. * \param[in] flags Flags to use for encoding this frame. * \param[in] deadline Time to spend encoding, in microseconds. (0=infinite) * * \retval #VPX_CODEC_OK * The configuration was populated. * \retval #VPX_CODEC_INCAPABLE * Interface is not an encoder interface. * \retval #VPX_CODEC_INVALID_PARAM * A parameter was NULL, the image format is unsupported, etc. */ vpx_codec_err_t vpx_codec_encode(vpx_codec_ctx_t *ctx, const vpx_image_t *img, vpx_codec_pts_t pts, unsigned long duration, vpx_enc_frame_flags_t flags, vpx_enc_deadline_t deadline); /*!\brief Set compressed data output buffer * * Sets the buffer that the codec should output the compressed data * into. This call effectively sets the buffer pointer returned in the * next VPX_CODEC_CX_FRAME_PKT packet. Subsequent packets will be * appended into this buffer. The buffer is preserved across frames, * so applications must periodically call this function after flushing * the accumulated compressed data to disk or to the network to reset * the pointer to the buffer's head. * * `pad_before` bytes will be skipped before writing the compressed * data, and `pad_after` bytes will be appended to the packet. The size * of the packet will be the sum of the size of the actual compressed * data, pad_before, and pad_after. The padding bytes will be preserved * (not overwritten). * * Note that calling this function does not guarantee that the returned * compressed data will be placed into the specified buffer. In the * event that the encoded data will not fit into the buffer provided, * the returned packet \ref MAY point to an internal buffer, as it would * if this call were never used. In this event, the output packet will * NOT have any padding, and the application must free space and copy it * to the proper place. This is of particular note in configurations * that may output multiple packets for a single encoded frame (e.g., lagged * encoding) or if the application does not reset the buffer periodically. * * Applications may restore the default behavior of the codec providing * the compressed data buffer by calling this function with a NULL * buffer. * * Applications \ref MUSTNOT call this function during iteration of * vpx_codec_get_cx_data(). * * \param[in] ctx Pointer to this instance's context * \param[in] buf Buffer to store compressed data into * \param[in] pad_before Bytes to skip before writing compressed data * \param[in] pad_after Bytes to skip after writing compressed data * * \retval #VPX_CODEC_OK * The buffer was set successfully. * \retval #VPX_CODEC_INVALID_PARAM * A parameter was NULL, the image format is unsupported, etc. * * \note * `duration` and `deadline` are of the unsigned long type, which can be 32 * or 64 bits. `duration` and `deadline` must be less than or equal to * UINT32_MAX so that their ranges are independent of the size of unsigned * long. */ vpx_codec_err_t vpx_codec_set_cx_data_buf(vpx_codec_ctx_t *ctx, const vpx_fixed_buf_t *buf, unsigned int pad_before, unsigned int pad_after); /*!\brief Encoded data iterator * * Iterates over a list of data packets to be passed from the encoder to the * application. The different kinds of packets available are enumerated in * #vpx_codec_cx_pkt_kind. * * #VPX_CODEC_CX_FRAME_PKT packets should be passed to the application's * muxer. Multiple compressed frames may be in the list. * #VPX_CODEC_STATS_PKT packets should be appended to a global buffer. * * The application \ref MUST silently ignore any packet kinds that it does * not recognize or support. * * The data buffers returned from this function are only guaranteed to be * valid until the application makes another call to any vpx_codec_* function. * * \param[in] ctx Pointer to this instance's context * \param[in,out] iter Iterator storage, initialized to NULL * * \return Returns a pointer to an output data packet (compressed frame data, * two-pass statistics, etc.) or NULL to signal end-of-list. * */ const vpx_codec_cx_pkt_t *vpx_codec_get_cx_data(vpx_codec_ctx_t *ctx, vpx_codec_iter_t *iter); /*!\brief Get Preview Frame * * Returns an image that can be used as a preview. Shows the image as it would * exist at the decompressor. The application \ref MUST NOT write into this * image buffer. * * \param[in] ctx Pointer to this instance's context * * \return Returns a pointer to a preview image, or NULL if no image is * available. * */ const vpx_image_t *vpx_codec_get_preview_frame(vpx_codec_ctx_t *ctx); /*!@} - end defgroup encoder*/ #ifdef __cplusplus } #endif # 1150 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_encoder.h" #endif // VPX_VPX_VPX_ENCODER_H_ # 1151 "../../third_party/libvpx/source/libvpx/vpx/internal/../vpx_encoder.h" #endif /* vpx_encoder.h expanded by -frewrite-includes */ # 49 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdarg.h expanded by -frewrite-includes */ #include #else /* stdarg.h expanded by -frewrite-includes */ # 49 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 1 3 /*===---- stdarg.h - Variable argument handling ----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stdarg.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #undef __need_va_list #undef __need_va_arg #undef __need___va_copy #undef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 28 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 # 30 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #else # 32 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need___va_list) && !defined(__need_va_list) && \ !defined(__need_va_arg) && !defined(__need___va_copy) && \ !defined(__need_va_copy) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #define __need___va_list #define __need_va_list #define __need_va_arg #define __need___va_copy /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode * or -ansi is not specified, since it was not part of C90. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #define __need_va_copy #endif # 47 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 47 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #endif # 49 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___gnuc_va_list.h> #endif /* expanded by -frewrite-includes */ # 51 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #endif /* defined(__need___va_list) */ # 54 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_list.h> #endif /* expanded by -frewrite-includes */ # 56 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 # 57 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #undef __need_va_list #endif /* defined(__need_va_list) */ # 59 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_arg #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_arg.h> #endif /* expanded by -frewrite-includes */ # 61 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 # 62 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #undef __need_va_arg #endif /* defined(__need_va_arg) */ # 64 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___va_copy.h> #endif /* expanded by -frewrite-includes */ # 66 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 # 67 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #undef __need___va_copy #endif /* defined(__need___va_copy) */ # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_copy.h> #endif /* expanded by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 # 72 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #undef __need_va_copy #endif /* defined(__need_va_copy) */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #endif /* __MVS__ */ # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stdarg.h" 3 #endif /* stdarg.h expanded by -frewrite-includes */ # 50 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 51 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" # 52 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #ifdef __cplusplus extern "C" { #endif # 56 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" /*!\brief Current ABI version number * * \internal * If this file is altered in any way that changes the ABI, this value * must be bumped. Examples include, but are not limited to, changing * types, removing or reassigning enums, adding/removing/rearranging * fields to structures */ #define VPX_CODEC_INTERNAL_ABI_VERSION (5) /**<\hideinitializer*/ typedef struct vpx_codec_alg_priv vpx_codec_alg_priv_t; typedef struct vpx_codec_priv_enc_mr_cfg vpx_codec_priv_enc_mr_cfg_t; /*!\brief init function pointer prototype * * Performs algorithm-specific initialization of the decoder context. This * function is called by vpx_codec_dec_init() and vpx_codec_enc_init(), so * plugins implementing this interface may trust the input parameters to be * properly initialized. * * \param[in] ctx Pointer to this instance's context * \retval #VPX_CODEC_OK * The input stream was recognized and decoder initialized. * \retval #VPX_CODEC_MEM_ERROR * Memory operation failed. */ typedef vpx_codec_err_t (*vpx_codec_init_fn_t)( vpx_codec_ctx_t *ctx, vpx_codec_priv_enc_mr_cfg_t *data); /*!\brief destroy function pointer prototype * * Performs algorithm-specific destruction of the decoder context. This * function is called by the generic vpx_codec_destroy() wrapper function, * so plugins implementing this interface may trust the input parameters * to be properly initialized. * * \param[in] ctx Pointer to this instance's context * \retval #VPX_CODEC_OK * The input stream was recognized and decoder initialized. * \retval #VPX_CODEC_MEM_ERROR * Memory operation failed. */ typedef vpx_codec_err_t (*vpx_codec_destroy_fn_t)(vpx_codec_alg_priv_t *ctx); /*!\brief parse stream info function pointer prototype * * Performs high level parsing of the bitstream. This function is called by the * generic vpx_codec_peek_stream_info() wrapper function, so plugins * implementing this interface may trust the input parameters to be properly * initialized. * * \param[in] data Pointer to a block of data to parse * \param[in] data_sz Size of the data buffer * \param[in,out] si Pointer to stream info to update. The size member * \ref MUST be properly initialized, but \ref MAY be * clobbered by the algorithm. This parameter \ref MAY * be NULL. * * \retval #VPX_CODEC_OK * Bitstream is parsable and stream information updated */ typedef vpx_codec_err_t (*vpx_codec_peek_si_fn_t)(const uint8_t *data, unsigned int data_sz, vpx_codec_stream_info_t *si); /*!\brief Return information about the current stream. * * Returns information about the stream that has been parsed during decoding. * * \param[in] ctx Pointer to this instance's context * \param[in,out] si Pointer to stream info to update. The size member * \ref MUST be properly initialized, but \ref MAY be * clobbered by the algorithm. This parameter \ref MAY * be NULL. * * \retval #VPX_CODEC_OK * Bitstream is parsable and stream information updated */ typedef vpx_codec_err_t (*vpx_codec_get_si_fn_t)(vpx_codec_alg_priv_t *ctx, vpx_codec_stream_info_t *si); /*!\brief control function pointer prototype * * This function is used to exchange algorithm specific data with the decoder * instance. This can be used to implement features specific to a particular * algorithm. * * This function is called by the generic vpx_codec_control() wrapper * function, so plugins implementing this interface may trust the input * parameters to be properly initialized. However, this interface does not * provide type safety for the exchanged data or assign meanings to the * control codes. Those details should be specified in the algorithm's * header file. In particular, the ctrl_id parameter is guaranteed to exist * in the algorithm's control mapping table, and the data parameter may be NULL. * * * \param[in] ctx Pointer to this instance's context * \param[in] ctrl_id Algorithm specific control identifier * \param[in,out] data Data to exchange with algorithm instance. * * \retval #VPX_CODEC_OK * The internal state data was deserialized. */ typedef vpx_codec_err_t (*vpx_codec_control_fn_t)(vpx_codec_alg_priv_t *ctx, va_list ap); /*!\brief control function pointer mapping * * This structure stores the mapping between control identifiers and * implementing functions. Each algorithm provides a list of these * mappings. This list is searched by the vpx_codec_control() wrapper * function to determine which function to invoke. The special * value {0, NULL} is used to indicate end-of-list, and must be * present. The special value {0, } can be used as a catch-all * mapping. This implies that ctrl_id values chosen by the algorithm * \ref MUST be non-zero. */ typedef const struct vpx_codec_ctrl_fn_map { int ctrl_id; vpx_codec_control_fn_t fn; } vpx_codec_ctrl_fn_map_t; /*!\brief decode data function pointer prototype * * Processes a buffer of coded data. If the processing results in a new * decoded frame becoming available, put_slice and put_frame callbacks * are invoked as appropriate. This function is called by the generic * vpx_codec_decode() wrapper function, so plugins implementing this * interface may trust the input parameters to be properly initialized. * * \param[in] ctx Pointer to this instance's context * \param[in] data Pointer to this block of new coded data. If * NULL, the put_frame callback is invoked for * the previously decoded frame. * \param[in] data_sz Size of the coded data, in bytes. * * \return Returns #VPX_CODEC_OK if the coded data was processed completely * and future pictures can be decoded without error. Otherwise, * see the descriptions of the other error codes in ::vpx_codec_err_t * for recoverability capabilities. */ typedef vpx_codec_err_t (*vpx_codec_decode_fn_t)(vpx_codec_alg_priv_t *ctx, const uint8_t *data, unsigned int data_sz, void *user_priv); /*!\brief Decoded frames iterator * * Iterates over a list of the frames available for display. The iterator * storage should be initialized to NULL to start the iteration. Iteration is * complete when this function returns NULL. * * The list of available frames becomes valid upon completion of the * vpx_codec_decode call, and remains valid until the next call to * vpx_codec_decode. * * \param[in] ctx Pointer to this instance's context * \param[in out] iter Iterator storage, initialized to NULL * * \return Returns a pointer to an image, if one is ready for display. Frames * produced will always be in PTS (presentation time stamp) order. */ typedef vpx_image_t *(*vpx_codec_get_frame_fn_t)(vpx_codec_alg_priv_t *ctx, vpx_codec_iter_t *iter); /*!\brief Pass in external frame buffers for the decoder to use. * * Registers functions to be called when libvpx needs a frame buffer * to decode the current frame and a function to be called when libvpx does * not internally reference the frame buffer. This set function must * be called before the first call to decode or libvpx will assume the * default behavior of allocating frame buffers internally. * * \param[in] ctx Pointer to this instance's context * \param[in] cb_get Pointer to the get callback function * \param[in] cb_release Pointer to the release callback function * \param[in] cb_priv Callback's private data * * \retval #VPX_CODEC_OK * External frame buffers will be used by libvpx. * \retval #VPX_CODEC_INVALID_PARAM * One or more of the callbacks were NULL. * \retval #VPX_CODEC_ERROR * Decoder context not initialized, or algorithm not capable of * using external frame buffers. * * \note * When decoding VP9, the application may be required to pass in at least * #VP9_MAXIMUM_REF_BUFFERS + #VPX_MAXIMUM_WORK_BUFFERS external frame * buffers. */ typedef vpx_codec_err_t (*vpx_codec_set_fb_fn_t)( vpx_codec_alg_priv_t *ctx, vpx_get_frame_buffer_cb_fn_t cb_get, vpx_release_frame_buffer_cb_fn_t cb_release, void *cb_priv); typedef vpx_codec_err_t (*vpx_codec_encode_fn_t)(vpx_codec_alg_priv_t *ctx, const vpx_image_t *img, vpx_codec_pts_t pts, unsigned long duration, vpx_enc_frame_flags_t flags, vpx_enc_deadline_t deadline); typedef const vpx_codec_cx_pkt_t *(*vpx_codec_get_cx_data_fn_t)( vpx_codec_alg_priv_t *ctx, vpx_codec_iter_t *iter); typedef vpx_codec_err_t (*vpx_codec_enc_config_set_fn_t)( vpx_codec_alg_priv_t *ctx, const vpx_codec_enc_cfg_t *cfg); typedef vpx_fixed_buf_t *(*vpx_codec_get_global_headers_fn_t)( vpx_codec_alg_priv_t *ctx); typedef vpx_image_t *(*vpx_codec_get_preview_frame_fn_t)( vpx_codec_alg_priv_t *ctx); typedef vpx_codec_err_t (*vpx_codec_enc_mr_get_mem_loc_fn_t)( const vpx_codec_enc_cfg_t *cfg, void **mem_loc); /*!\brief usage configuration mapping * * This structure stores the mapping between usage identifiers and * configuration structures. Each algorithm provides a list of these * mappings. This list is searched by the vpx_codec_enc_config_default() * wrapper function to determine which config to return. The special value * {-1, {0}} is used to indicate end-of-list, and must be present. At least * one mapping must be present, in addition to the end-of-list. * */ typedef const struct vpx_codec_enc_cfg_map { int usage; vpx_codec_enc_cfg_t cfg; } vpx_codec_enc_cfg_map_t; /*!\brief Decoder algorithm interface * * All decoders \ref MUST expose a variable of this type. */ struct vpx_codec_iface { const char *name; /**< Identification String */ int abi_version; /**< Implemented ABI version */ vpx_codec_caps_t caps; /**< Decoder capabilities */ vpx_codec_init_fn_t init; /**< \copydoc ::vpx_codec_init_fn_t */ vpx_codec_destroy_fn_t destroy; /**< \copydoc ::vpx_codec_destroy_fn_t */ vpx_codec_ctrl_fn_map_t *ctrl_maps; /**< \copydoc ::vpx_codec_ctrl_fn_map_t */ struct vpx_codec_dec_iface { vpx_codec_peek_si_fn_t peek_si; /**< \copydoc ::vpx_codec_peek_si_fn_t */ vpx_codec_get_si_fn_t get_si; /**< \copydoc ::vpx_codec_get_si_fn_t */ vpx_codec_decode_fn_t decode; /**< \copydoc ::vpx_codec_decode_fn_t */ vpx_codec_get_frame_fn_t get_frame; /**< \copydoc ::vpx_codec_get_frame_fn_t */ vpx_codec_set_fb_fn_t set_fb_fn; /**< \copydoc ::vpx_codec_set_fb_fn_t */ } dec; struct vpx_codec_enc_iface { int cfg_map_count; vpx_codec_enc_cfg_map_t *cfg_maps; /**< \copydoc ::vpx_codec_enc_cfg_map_t */ vpx_codec_encode_fn_t encode; /**< \copydoc ::vpx_codec_encode_fn_t */ vpx_codec_get_cx_data_fn_t get_cx_data; /**< \copydoc ::vpx_codec_get_cx_data_fn_t */ vpx_codec_enc_config_set_fn_t cfg_set; /**< \copydoc ::vpx_codec_enc_config_set_fn_t */ vpx_codec_get_global_headers_fn_t get_glob_hdrs; /**< \copydoc ::vpx_codec_get_global_headers_fn_t */ vpx_codec_get_preview_frame_fn_t get_preview; /**< \copydoc ::vpx_codec_get_preview_frame_fn_t */ vpx_codec_enc_mr_get_mem_loc_fn_t mr_get_mem_loc; /**< \copydoc ::vpx_codec_enc_mr_get_mem_loc_fn_t */ } enc; }; /*!\brief Callback function pointer / user data pair storage */ typedef struct vpx_codec_priv_cb_pair { union { vpx_codec_put_frame_cb_fn_t put_frame; vpx_codec_put_slice_cb_fn_t put_slice; } u; void *user_priv; } vpx_codec_priv_cb_pair_t; /*!\brief Instance private storage * * This structure is allocated by the algorithm's init function. It can be * extended in one of two ways. First, a second, algorithm specific structure * can be allocated and the priv member pointed to it. Alternatively, this * structure can be made the first member of the algorithm specific structure, * and the pointer cast to the proper type. */ struct vpx_codec_priv { const char *err_detail; vpx_codec_flags_t init_flags; struct { vpx_codec_priv_cb_pair_t put_frame_cb; vpx_codec_priv_cb_pair_t put_slice_cb; } dec; struct { vpx_fixed_buf_t cx_data_dst_buf; unsigned int cx_data_pad_before; unsigned int cx_data_pad_after; vpx_codec_cx_pkt_t cx_data_pkt; unsigned int total_encoders; } enc; }; /* * Multi-resolution encoding internal configuration */ struct vpx_codec_priv_enc_mr_cfg { unsigned int mr_total_resolutions; unsigned int mr_encoder_id; struct vpx_rational mr_down_sampling_factor; void *mr_low_res_mode_info; }; #undef VPX_CTRL_USE_TYPE #define VPX_CTRL_USE_TYPE(id, typ) \ static VPX_INLINE typ id##__value(va_list args) { return va_arg(args, typ); } #undef VPX_CTRL_USE_TYPE_DEPRECATED #define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ) \ static VPX_INLINE typ id##__value(va_list args) { return va_arg(args, typ); } #define CAST(id, arg) id##__value(arg) /* CODEC_INTERFACE convenience macro * * By convention, each codec interface is a struct with extern linkage, where * the symbol is suffixed with _algo. A getter function is also defined to * return a pointer to the struct, since in some cases it's easier to work * with text symbols than data symbols (see issue #169). This function has * the same name as the struct, less the _algo suffix. The CODEC_INTERFACE * macro is provided to define this getter function automatically. */ #define CODEC_INTERFACE(id) \ vpx_codec_iface_t *id(void) { return &id##_algo; } \ vpx_codec_iface_t id##_algo /* Internal Utility Functions * * The following functions are intended to be used inside algorithms as * utilities for manipulating vpx_codec_* data structures. */ struct vpx_codec_pkt_list { unsigned int cnt; unsigned int max; struct vpx_codec_cx_pkt pkts[1]; }; #define vpx_codec_pkt_list_decl(n) \ union { \ struct vpx_codec_pkt_list head; \ struct { \ struct vpx_codec_pkt_list head; \ struct vpx_codec_cx_pkt pkts[n]; \ } alloc; \ } #define vpx_codec_pkt_list_init(m) \ (m)->alloc.head.cnt = 0, \ (m)->alloc.head.max = sizeof((m)->alloc.pkts) / sizeof((m)->alloc.pkts[0]) int vpx_codec_pkt_list_add(struct vpx_codec_pkt_list *, const struct vpx_codec_cx_pkt *); const vpx_codec_cx_pkt_t *vpx_codec_pkt_list_get( struct vpx_codec_pkt_list *list, vpx_codec_iter_t *iter); #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 420 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" # 421 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* setjmp.h expanded by -frewrite-includes */ #include #else /* setjmp.h expanded by -frewrite-includes */ # 421 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 1 3 4 /* $OpenBSD: setjmp.h,v 1.5 2005/12/13 00:35:22 millert Exp $ */ /* $NetBSD: setjmp.h,v 1.11 1994/12/20 10:35:44 cgd Exp $ */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)setjmp.h 8.2 (Berkeley) 1/21/94 */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 /** * @file setjmp.h * @brief Non-local jumps. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 # 48 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__aarch64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 /** * The size in words of an arm64 jmp_buf. Room for callee-saved registers, * including floating point, stack pointer and program counter, various * internal implementation details, and leaving some free space. * * Coincidentally matches OpenBSD, though they also save/restore the * floating point status register too. */ #define _JBLEN 32 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__arm__) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 60 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 /** The size in words of an arm32 jmp_buf. Inherited from OpenBSD. */ #define _JBLEN 64 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__i386__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 63 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 /** The size in words of an x86 jmp_buf. Inherited from OpenBSD. */ #define _JBLEN 10 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__riscv) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 66 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 /** * The size in words of a riscv64 jmp_buf. Room for callee-saved registers, * including floating point, stack pointer and program counter, various * internal implementation details, and leaving lots of free space. * * Deliberately very large given the uncertainty around the final form of * hardware shadow stack, and the fact that x86-64 glibc needed to steal * space from their enormous sigset_t (which we don't have) to be able to * implement the CET shadow stack. */ #define _JBLEN 64 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 78 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 /** The size in words of an x86-64 jmp_buf. Inherited from OpenBSD. */ #define _JBLEN 11 #endif # 81 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/setjmp.h" 3 4 /** The type of the buffer used by sigsetjmp()/siglongjmp(). */ typedef long sigjmp_buf[_JBLEN + 1]; /** The type of the buffer used by setjmp()/longjmp(). */ typedef long jmp_buf[_JBLEN]; #undef _JBLEN __BEGIN_DECLS /** * Equivalent to sigsetjmp() with the second argument 0, so that the signal * mask is not saved. */ int _setjmp(jmp_buf __env) __returns_twice; /** Equivalent to siglongjmp(). */ __noreturn void _longjmp(jmp_buf __env, int __value); /** * Equivalent to sigsetjmp() with the second argument 1, so that the signal * mask is saved. */ int setjmp(jmp_buf __env) __returns_twice; /** C11 says setjmp() must be a macro, but Android already had a function. */ #define setjmp(__env) setjmp(__env) /** Equivalent to siglongjmp(). */ __noreturn void longjmp(jmp_buf __env, int __value); /** * [sigsetjmp(3)](http://man7.org/linux/man-pages/man3/sigsetjmp.3.html) * sets the target of a future siglongjmp() call, saving or not saving the * current signal mask based on the second argument. * * Returns 0 when first called, and returns the value passed to siglongjmp() * when returning here as a result of a siglongjmp() call. */ int sigsetjmp(sigjmp_buf __env, int __save_signal_mask) __returns_twice; /** * [siglongjmp(3)](http://man7.org/linux/man-pages/man3/siglongjmp.3.html) * transfers control back to the site of the sigsetjmp() call that initialized * the given jump buffer, returning the given value. * * Does not return. */ __noreturn void siglongjmp(sigjmp_buf __env, int __value); __END_DECLS #endif /* setjmp.h expanded by -frewrite-includes */ # 422 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" 2 struct vpx_internal_error_info { vpx_codec_err_t error_code; int has_detail; char detail[80]; int setjmp; jmp_buf jmp; }; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 432 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #define CHECK_MEM_ERROR(error, lval, expr) \ do { \ assert((error)->setjmp); \ (lval) = (expr); \ if (!(lval)) \ vpx_internal_error(error, VPX_CODEC_MEM_ERROR, \ "Failed to allocate " #lval " at %s:%d", __FILE__, \ __LINE__); \ } while (0) #else # 442 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #define CHECK_MEM_ERROR(error, lval, expr) \ do { \ assert((error)->setjmp); \ (lval) = (expr); \ if (!(lval)) \ vpx_internal_error(error, VPX_CODEC_MEM_ERROR, \ "Failed to allocate " #lval); \ } while (0) #endif # 451 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #define CLANG_ANALYZER_NORETURN #if 0 /* disabled by -frewrite-includes */ #if defined(__has_feature) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 454 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #if 0 /* disabled by -frewrite-includes */ #if __has_feature(attribute_analyzer_noreturn) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 455 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #undef CLANG_ANALYZER_NORETURN #define CLANG_ANALYZER_NORETURN __attribute__((analyzer_noreturn)) #endif # 458 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #endif # 459 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" // Tells the compiler to perform `printf` format string checking if the // compiler supports it; see the 'format' attribute in // . #define LIBVPX_FORMAT_PRINTF(string_index, first_to_check) #if 0 /* disabled by -frewrite-includes */ #if defined(__has_attribute) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 465 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #if 0 /* disabled by -frewrite-includes */ #if __has_attribute(format) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 466 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #undef LIBVPX_FORMAT_PRINTF #define LIBVPX_FORMAT_PRINTF(string_index, first_to_check) \ __attribute__((__format__(__printf__, string_index, first_to_check))) #endif # 470 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #endif # 471 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" void vpx_internal_error(struct vpx_internal_error_info *info, vpx_codec_err_t error, const char *fmt, ...) LIBVPX_FORMAT_PRINTF(3, 4) CLANG_ANALYZER_NORETURN; #ifdef __cplusplus } // extern "C" #endif # 479 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #endif // VPX_VPX_INTERNAL_VPX_CODEC_INTERNAL_H_ # 481 "../../third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h" #endif /* vpx_codec_internal.h expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" # 18 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* yv12config.h expanded by -frewrite-includes */ #include "vpx_scale/yv12config.h" #else /* yv12config.h expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" # 1 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_SCALE_YV12CONFIG_H_ #define VPX_VPX_SCALE_YV12CONFIG_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" # 19 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_codec.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" # 20 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_frame_buffer.h" #endif /* expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" # 21 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" # 22 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" #define VP8BORDERINPIXELS 32 #define VP9INNERBORDERINPIXELS 96 #define VP9_INTERP_EXTEND 4 #define VP9_ENC_BORDER_IN_PIXELS 160 #define VP9_DEC_BORDER_IN_PIXELS 32 typedef struct yv12_buffer_config { int y_width; int y_height; int y_crop_width; int y_crop_height; int y_stride; int uv_width; int uv_height; int uv_crop_width; int uv_crop_height; int uv_stride; int alpha_width; int alpha_height; int alpha_stride; uint8_t *y_buffer; uint8_t *u_buffer; uint8_t *v_buffer; uint8_t *alpha_buffer; uint8_t *buffer_alloc; size_t buffer_alloc_sz; int border; size_t frame_size; int subsampling_x; int subsampling_y; unsigned int bit_depth; vpx_color_space_t color_space; vpx_color_range_t color_range; int render_width; int render_height; int corrupted; int flags; } YV12_BUFFER_CONFIG; #define YV12_FLAG_HIGHBITDEPTH 8 int vp8_yv12_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, int border); int vp8_yv12_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, int border); int vp8_yv12_de_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf); int vpx_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, int ss_x, int ss_y, #if 0 /* disabled by -frewrite-includes */ #if CONFIG_VP9_HIGHBITDEPTH #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" int use_highbitdepth, #endif # 80 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" int border, int byte_alignment); // Updates the yv12 buffer config with the frame buffer. |byte_alignment| must // be a power of 2, from 32 to 1024. 0 sets legacy alignment. If cb is not // NULL, then libvpx is using the frame buffer callbacks to handle memory. // If cb is not NULL, libvpx will call cb with minimum size in bytes needed // to decode the current frame. If cb is NULL, libvpx will allocate memory // internally to decode the current frame. Returns 0 on success. Returns < 0 // on failure. int vpx_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, int ss_x, int ss_y, #if 0 /* disabled by -frewrite-includes */ #if CONFIG_VP9_HIGHBITDEPTH #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 92 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" int use_highbitdepth, #endif # 94 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" int border, int byte_alignment, vpx_codec_frame_buffer_t *fb, vpx_get_frame_buffer_cb_fn_t cb, void *cb_priv); int vpx_free_frame_buffer(YV12_BUFFER_CONFIG *ybf); #ifdef __cplusplus } #endif # 102 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" #endif // VPX_VPX_SCALE_YV12CONFIG_H_ # 104 "../../third_party/libvpx/source/libvpx/vpx_scale/yv12config.h" #endif /* yv12config.h expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* mv.h expanded by -frewrite-includes */ #include "mv.h" #else /* mv.h expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/mv.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_MV_H_ #define VPX_VP8_COMMON_MV_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 13 "../../third_party/libvpx/source/libvpx/vp8/common/mv.h" # 14 "../../third_party/libvpx/source/libvpx/vp8/common/mv.h" #ifdef __cplusplus extern "C" { #endif # 18 "../../third_party/libvpx/source/libvpx/vp8/common/mv.h" typedef struct { short row; short col; } MV; typedef union int_mv { uint32_t as_int; MV as_mv; } int_mv; /* facilitates faster equality tests and copies */ #ifdef __cplusplus } // extern "C" #endif # 32 "../../third_party/libvpx/source/libvpx/vp8/common/mv.h" #endif // VPX_VP8_COMMON_MV_H_ # 34 "../../third_party/libvpx/source/libvpx/vp8/common/mv.h" #endif /* mv.h expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "treecoder.h" #endif /* expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" # 21 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/mem.h" #endif /* expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" # 22 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" #ifdef __cplusplus extern "C" { #endif # 26 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" /*#define DCPRED 1*/ #define DCPREDSIMTHRESH 0 #define DCPREDCNTTHRESH 3 #define MB_FEATURE_TREE_PROBS 3 #define MAX_MB_SEGMENTS 4 #define MAX_REF_LF_DELTAS 4 #define MAX_MODE_LF_DELTAS 4 /* Segment Feature Masks */ #define SEGMENT_DELTADATA 0 #define SEGMENT_ABSDATA 1 typedef struct { int r, c; } POS; #define PLANE_TYPE_Y_NO_DC 0 #define PLANE_TYPE_Y2 1 #define PLANE_TYPE_UV 2 #define PLANE_TYPE_Y_WITH_DC 3 typedef char ENTROPY_CONTEXT; typedef struct { ENTROPY_CONTEXT y1[4]; ENTROPY_CONTEXT u[2]; ENTROPY_CONTEXT v[2]; ENTROPY_CONTEXT y2; } ENTROPY_CONTEXT_PLANES; extern const unsigned char vp8_block2left[25]; extern const unsigned char vp8_block2above[25]; #define VP8_COMBINEENTROPYCONTEXTS(Dest, A, B) Dest = (A) + (B) typedef enum { KEY_FRAME = 0, INTER_FRAME = 1 } FRAME_TYPE; typedef enum { DC_PRED, /* average of above and left pixels */ V_PRED, /* vertical prediction */ H_PRED, /* horizontal prediction */ TM_PRED, /* Truemotion prediction */ B_PRED, /* block based prediction, each block has its own prediction mode */ NEARESTMV, NEARMV, ZEROMV, NEWMV, SPLITMV, MB_MODE_COUNT } MB_PREDICTION_MODE; /* Macroblock level features */ typedef enum { MB_LVL_ALT_Q = 0, /* Use alternate Quantizer .... */ MB_LVL_ALT_LF = 1, /* Use alternate loop filter value... */ MB_LVL_MAX = 2 /* Number of MB level features supported */ } MB_LVL_FEATURES; /* Segment Feature Masks */ #define SEGMENT_ALTQ 0x01 #define SEGMENT_ALT_LF 0x02 #define VP8_YMODES (B_PRED + 1) #define VP8_UV_MODES (TM_PRED + 1) #define VP8_MVREFS (1 + SPLITMV - NEARESTMV) typedef enum { B_DC_PRED, /* average of above and left pixels */ B_TM_PRED, B_VE_PRED, /* vertical prediction */ B_HE_PRED, /* horizontal prediction */ B_LD_PRED, B_RD_PRED, B_VR_PRED, B_VL_PRED, B_HD_PRED, B_HU_PRED, LEFT4X4, ABOVE4X4, ZERO4X4, NEW4X4, B_MODE_COUNT } B_PREDICTION_MODE; #define VP8_BINTRAMODES (B_HU_PRED + 1) /* 10 */ #define VP8_SUBMVREFS (1 + NEW4X4 - LEFT4X4) /* For keyframes, intra block modes are predicted by the (already decoded) modes for the Y blocks to the left and above us; for interframes, there is a single probability table. */ union b_mode_info { B_PREDICTION_MODE as_mode; int_mv mv; }; typedef enum { INTRA_FRAME = 0, LAST_FRAME = 1, GOLDEN_FRAME = 2, ALTREF_FRAME = 3, MAX_REF_FRAMES = 4 } MV_REFERENCE_FRAME; typedef struct { uint8_t mode, uv_mode; uint8_t ref_frame; uint8_t is_4x4; int_mv mv; uint8_t partitioning; /* does this mb has coefficients at all, 1=no coefficients, 0=need decode tokens */ uint8_t mb_skip_coeff; uint8_t need_to_clamp_mvs; /* Which set of segmentation parameters should be used for this MB */ uint8_t segment_id; } MB_MODE_INFO; typedef struct modeinfo { MB_MODE_INFO mbmi; union b_mode_info bmi[16]; } MODE_INFO; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTI_RES_ENCODING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 162 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" /* The mb-level information needed to be stored for higher-resolution encoder */ typedef struct { MB_PREDICTION_MODE mode; MV_REFERENCE_FRAME ref_frame; int_mv mv; int dissim; /* dissimilarity level of the macroblock */ } LOWER_RES_MB_INFO; /* The frame-level information needed to be stored for higher-resolution * encoder */ typedef struct { FRAME_TYPE frame_type; int is_frame_dropped; // If frame is dropped due to overshoot after encode_frame. This triggers a // drop and resets rate control with Q forced to max for following frame. // The check for this dropping due to overshoot is only done on lowest stream, // and if set will force drop on all spatial streams for that current frame. int is_frame_dropped_overshoot_maxqp; // The frame rate for the lowest resolution. double low_res_framerate; /* The frame number of each reference frames */ unsigned int low_res_ref_frames[MAX_REF_FRAMES]; // The video frame counter value for the key frame, for lowest resolution. unsigned int key_frame_counter_value; // Flags to signal skipped encoding of previous and base layer stream. unsigned int skip_encoding_prev_stream; unsigned int skip_encoding_base_stream; LOWER_RES_MB_INFO *mb_info; } LOWER_RES_FRAME_INFO; #endif # 192 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" typedef struct blockd { short *qcoeff; short *dqcoeff; unsigned char *predictor; short *dequant; int offset; char *eob; union b_mode_info bmi; } BLOCKD; typedef void (*vp8_subpix_fn_t)(unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch); typedef struct macroblockd { DECLARE_ALIGNED(16, unsigned char, predictor[384]); DECLARE_ALIGNED(16, short, qcoeff[400]); DECLARE_ALIGNED(16, short, dqcoeff[400]); DECLARE_ALIGNED(16, char, eobs[25]); DECLARE_ALIGNED(16, short, dequant_y1[16]); DECLARE_ALIGNED(16, short, dequant_y1_dc[16]); DECLARE_ALIGNED(16, short, dequant_y2[16]); DECLARE_ALIGNED(16, short, dequant_uv[16]); /* 16 Y blocks, 4 U, 4 V, 1 DC 2nd order block, each with 16 entries. */ BLOCKD block[25]; int fullpixel_mask; YV12_BUFFER_CONFIG pre; /* Filtered copy of previous frame reconstruction */ YV12_BUFFER_CONFIG dst; MODE_INFO *mode_info_context; int mode_info_stride; FRAME_TYPE frame_type; int up_available; int left_available; unsigned char *recon_above[3]; unsigned char *recon_left[3]; int recon_left_stride[2]; /* Y,U,V,Y2 */ ENTROPY_CONTEXT_PLANES *above_context; ENTROPY_CONTEXT_PLANES *left_context; /* 0 indicates segmentation at MB level is not enabled. Otherwise the * individual bits indicate which features are active. */ unsigned char segmentation_enabled; /* 0 (do not update) 1 (update) the macroblock segmentation map. */ unsigned char update_mb_segmentation_map; /* 0 (do not update) 1 (update) the macroblock segmentation feature data. */ unsigned char update_mb_segmentation_data; /* 0 (do not update) 1 (update) the macroblock segmentation feature data. */ unsigned char mb_segment_abs_delta; /* Per frame flags that define which MB level features (such as quantizer or * loop filter level) */ /* are enabled and when enabled the proabilities used to decode the per MB * flags in MB_MODE_INFO */ /* Probability Tree used to code Segment number */ vp8_prob mb_segment_tree_probs[MB_FEATURE_TREE_PROBS]; /* Segment parameters */ signed char segment_feature_data[MB_LVL_MAX][MAX_MB_SEGMENTS]; /* mode_based Loop filter adjustment */ unsigned char mode_ref_lf_delta_enabled; unsigned char mode_ref_lf_delta_update; /* Delta values have the range +/- MAX_LOOP_FILTER */ signed char last_ref_lf_deltas[MAX_REF_LF_DELTAS]; /* 0 = Intra, Last, GF, ARF */ signed char ref_lf_deltas[MAX_REF_LF_DELTAS]; /* 0 = Intra, Last, GF, ARF */ /* 0 = BPRED, ZERO_MV, MV, SPLIT */ signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS]; signed char mode_lf_deltas[MAX_MODE_LF_DELTAS]; /* 0 = BPRED, ZERO_MV, MV, SPLIT */ /* Distance of MB away from frame edges */ int mb_to_left_edge; int mb_to_right_edge; int mb_to_top_edge; int mb_to_bottom_edge; vp8_subpix_fn_t subpixel_predict; vp8_subpix_fn_t subpixel_predict8x4; vp8_subpix_fn_t subpixel_predict8x8; vp8_subpix_fn_t subpixel_predict16x16; void *current_bc; int corrupted; struct vpx_internal_error_info error_info; #if 0 /* disabled by -frewrite-includes */ #if VPX_ARCH_X86 || VPX_ARCH_X86_64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 296 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" /* This is an intermediate buffer currently used in sub-pixel motion search * to keep a copy of the reference area. This buffer can be used for other * purpose. */ DECLARE_ALIGNED(32, unsigned char, y_buf[22 * 32]); #endif # 302 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" } MACROBLOCKD; extern void vp8_build_block_doffsets(MACROBLOCKD *x); extern void vp8_setup_block_dptrs(MACROBLOCKD *x); #ifdef __cplusplus } // extern "C" #endif # 310 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" #endif // VPX_VP8_COMMON_BLOCKD_H_ # 312 "../../third_party/libvpx/source/libvpx/vp8/common/blockd.h" #endif /* blockd.h expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/common/entropy.h" 2 #ifdef __cplusplus extern "C" { #endif # 20 "../../third_party/libvpx/source/libvpx/vp8/common/entropy.h" /* Coefficient token alphabet */ #define ZERO_TOKEN 0 /* 0 Extra Bits 0+0 */ #define ONE_TOKEN 1 /* 1 Extra Bits 0+1 */ #define TWO_TOKEN 2 /* 2 Extra Bits 0+1 */ #define THREE_TOKEN 3 /* 3 Extra Bits 0+1 */ #define FOUR_TOKEN 4 /* 4 Extra Bits 0+1 */ #define DCT_VAL_CATEGORY1 5 /* 5-6 Extra Bits 1+1 */ #define DCT_VAL_CATEGORY2 6 /* 7-10 Extra Bits 2+1 */ #define DCT_VAL_CATEGORY3 7 /* 11-18 Extra Bits 3+1 */ #define DCT_VAL_CATEGORY4 8 /* 19-34 Extra Bits 4+1 */ #define DCT_VAL_CATEGORY5 9 /* 35-66 Extra Bits 5+1 */ #define DCT_VAL_CATEGORY6 10 /* 67+ Extra Bits 11+1 */ #define DCT_EOB_TOKEN 11 /* EOB Extra Bits 0+0 */ #define MAX_ENTROPY_TOKENS 12 #define ENTROPY_NODES 11 extern const vp8_tree_index vp8_coef_tree[]; extern const struct vp8_token_struct vp8_coef_encodings[MAX_ENTROPY_TOKENS]; typedef struct { vp8_tree_p tree; const vp8_prob *prob; int Len; int base_val; } vp8_extra_bit_struct; extern const vp8_extra_bit_struct vp8_extra_bits[12]; /* indexed by token value */ #define PROB_UPDATE_BASELINE_COST 7 #define MAX_PROB 255 #define DCT_MAX_VALUE 2048 /* Coefficients are predicted via a 3-dimensional probability table. */ /* Outside dimension. 0 = Y no DC, 1 = Y2, 2 = UV, 3 = Y with DC */ #define BLOCK_TYPES 4 /* Middle dimension is a coarsening of the coefficient's position within the 4x4 DCT. */ #define COEF_BANDS 8 extern DECLARE_ALIGNED(16, const unsigned char, vp8_coef_bands[16]); /* Inside dimension is 3-valued measure of nearby complexity, that is, the extent to which nearby coefficients are nonzero. For the first coefficient (DC, unless block type is 0), we look at the (already encoded) blocks above and to the left of the current block. The context index is then the number (0,1,or 2) of these blocks having nonzero coefficients. After decoding a coefficient, the measure is roughly the size of the most recently decoded coefficient (0 for 0, 1 for 1, 2 for >1). Note that the intuitive meaning of this measure changes as coefficients are decoded, e.g., prior to the first token, a zero means that my neighbors are empty while, after the first token, because of the use of end-of-block, a zero means we just decoded a zero and hence guarantees that a non-zero coefficient will appear later in this block. However, this shift in meaning is perfectly OK because our context depends also on the coefficient band (and since zigzag positions 0, 1, and 2 are in distinct bands). */ /*# define DC_TOKEN_CONTEXTS 3*/ /* 00, 0!0, !0!0 */ #define PREV_COEF_CONTEXTS 3 extern DECLARE_ALIGNED(16, const unsigned char, vp8_prev_token_class[MAX_ENTROPY_TOKENS]); extern const vp8_prob vp8_coef_update_probs[BLOCK_TYPES][COEF_BANDS] [PREV_COEF_CONTEXTS][ENTROPY_NODES]; struct VP8Common; void vp8_default_coef_probs(struct VP8Common *); extern DECLARE_ALIGNED(16, const int, vp8_default_zig_zag1d[16]); extern DECLARE_ALIGNED(16, const short, vp8_default_inv_zig_zag[16]); extern DECLARE_ALIGNED(16, const short, vp8_default_zig_zag_mask[16]); extern const int vp8_mb_feature_data_bits[MB_LVL_MAX]; void vp8_coef_tree_initialize(void); #ifdef __cplusplus } // extern "C" #endif # 107 "../../third_party/libvpx/source/libvpx/vp8/common/entropy.h" #endif // VPX_VP8_COMMON_ENTROPY_H_ # 109 "../../third_party/libvpx/source/libvpx/vp8/common/entropy.h" #endif /* entropy.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* block.h expanded by -frewrite-includes */ #include "block.h" #else /* block.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_BLOCK_H_ #define VPX_VP8_ENCODER_BLOCK_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* onyx.h expanded by -frewrite-includes */ #include "vp8/common/onyx.h" #else /* onyx.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_ONYX_H_ #define VPX_VP8_COMMON_ONYX_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" # 19 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/internal/vpx_codec_internal.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" # 20 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* vp8cx.h expanded by -frewrite-includes */ #include "vpx/vp8cx.h" #else /* vp8cx.h expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_VP8CX_H_ #define VPX_VPX_VP8CX_H_ /*!\defgroup vp8_encoder WebM VP8/VP9 Encoder * \ingroup vp8 * * @{ */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* vp8.h expanded by -frewrite-includes */ #include "./vp8.h" #else /* vp8.h expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" # 1 "../../third_party/libvpx/source/libvpx/vpx/./vp8.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /*!\defgroup vp8 VP8 * \ingroup codecs * VP8 is a video compression algorithm that uses motion * compensated prediction, Discrete Cosine Transform (DCT) coding of the * prediction error signal and context dependent entropy coding techniques * based on arithmetic principles. It features: * - YUV 4:2:0 image format * - Macro-block based coding (16x16 luma plus two 8x8 chroma) * - 1/4 (1/8) pixel accuracy motion compensated prediction * - 4x4 DCT transform * - 128 level linear quantizer * - In loop deblocking filter * - Context-based entropy coding * * @{ */ /*!\file * \brief Provides controls common to both the VP8 encoder and decoder. */ #ifndef VPX_VPX_VP8_H_ #define VPX_VPX_VP8_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_codec.h" #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vpx/./vp8.h" # 34 "../../third_party/libvpx/source/libvpx/vpx/./vp8.h" #if 0 /* expanded by -frewrite-includes */ #include "./vpx_image.h" #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/libvpx/source/libvpx/vpx/./vp8.h" # 35 "../../third_party/libvpx/source/libvpx/vpx/./vp8.h" #ifdef __cplusplus extern "C" { #endif # 39 "../../third_party/libvpx/source/libvpx/vpx/./vp8.h" /*!\brief Control functions * * The set of macros define the control functions of VP8 interface */ enum vp8_com_control_id { /*!\brief pass in an external frame into decoder to be used as reference frame */ VP8_SET_REFERENCE = 1, VP8_COPY_REFERENCE = 2, /**< get a copy of reference frame from the decoder */ VP8_SET_POSTPROC = 3, /**< set the decoder's post processing settings */ /* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+) * for its control ids. These should be migrated to something like the * VP8_DECODER_CTRL_ID_START range next time we're ready to break the ABI. */ VP9_GET_REFERENCE = 128, /**< get a pointer to a reference frame */ VP8_COMMON_CTRL_ID_MAX, VP8_DECODER_CTRL_ID_START = 256 }; /*!\brief post process flags * * The set of macros define VP8 decoder post processing flags */ enum vp8_postproc_level { VP8_NOFILTERING = 0, VP8_DEBLOCK = 1 << 0, VP8_DEMACROBLOCK = 1 << 1, VP8_ADDNOISE = 1 << 2, VP8_MFQE = 1 << 3 }; /*!\brief post process flags * * This define a structure that describe the post processing settings. For * the best objective measure (using the PSNR metric) set post_proc_flag * to VP8_DEBLOCK and deblocking_level to 1. */ typedef struct vp8_postproc_cfg { /*!\brief the types of post processing to be done, should be combination of * "vp8_postproc_level" */ int post_proc_flag; int deblocking_level; /**< the strength of deblocking, valid range [0, 16] */ int noise_level; /**< the strength of additive noise, valid range [0, 16] */ } vp8_postproc_cfg_t; /*!\brief reference frame type * * The set of macros define the type of VP8 reference frames */ typedef enum vpx_ref_frame_type { VP8_LAST_FRAME = 1, VP8_GOLD_FRAME = 2, VP8_ALTR_FRAME = 4 } vpx_ref_frame_type_t; /*!\brief reference frame data struct * * Define the data struct to access vp8 reference frames. */ typedef struct vpx_ref_frame { vpx_ref_frame_type_t frame_type; /**< which reference frame */ vpx_image_t img; /**< reference frame data in image format */ } vpx_ref_frame_t; /*!\brief VP9 specific reference frame data struct * * Define the data struct to access vp9 reference frames. */ typedef struct vp9_ref_frame { int idx; /**< frame index to get (input) */ vpx_image_t img; /**< img structure to populate (output) */ } vp9_ref_frame_t; /*!\cond */ /*!\brief vp8 decoder control function parameter type * * defines the data type for each of VP8 decoder control function requires */ VPX_CTRL_USE_TYPE(VP8_SET_REFERENCE, vpx_ref_frame_t *) #define VPX_CTRL_VP8_SET_REFERENCE VPX_CTRL_USE_TYPE(VP8_COPY_REFERENCE, vpx_ref_frame_t *) #define VPX_CTRL_VP8_COPY_REFERENCE VPX_CTRL_USE_TYPE(VP8_SET_POSTPROC, vp8_postproc_cfg_t *) #define VPX_CTRL_VP8_SET_POSTPROC VPX_CTRL_USE_TYPE(VP9_GET_REFERENCE, vp9_ref_frame_t *) #define VPX_CTRL_VP9_GET_REFERENCE /*!\endcond */ /*! @} - end defgroup vp8 */ #ifdef __cplusplus } // extern "C" #endif # 135 "../../third_party/libvpx/source/libvpx/vpx/./vp8.h" #endif // VPX_VPX_VP8_H_ # 137 "../../third_party/libvpx/source/libvpx/vpx/./vp8.h" #endif /* vp8.h expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "./vpx_encoder.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" # 20 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" #if 0 /* expanded by -frewrite-includes */ #include "./vpx_ext_ratectrl.h" #endif /* expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" # 21 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" /*!\file * \brief Provides definitions for using VP8 or VP9 encoder algorithm within the * vpx Codec Interface. */ #ifdef __cplusplus extern "C" { #endif # 30 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" /*!\name Algorithm interface for VP8 * * This interface provides the capability to encode raw VP8 streams. * @{ */ /*!\brief A single instance of the VP8 encoder. *\deprecated This access mechanism is provided for backwards compatibility; * prefer vpx_codec_vp8_cx(). */ extern vpx_codec_iface_t vpx_codec_vp8_cx_algo; /*!\brief The interface to the VP8 encoder. */ extern vpx_codec_iface_t *vpx_codec_vp8_cx(void); /*!@} - end algorithm interface member group*/ /*!\name Algorithm interface for VP9 * * This interface provides the capability to encode raw VP9 streams. * @{ */ /*!\brief A single instance of the VP9 encoder. *\deprecated This access mechanism is provided for backwards compatibility; * prefer vpx_codec_vp9_cx(). */ extern vpx_codec_iface_t vpx_codec_vp9_cx_algo; /*!\brief The interface to the VP9 encoder. */ extern vpx_codec_iface_t *vpx_codec_vp9_cx(void); /*!@} - end algorithm interface member group*/ /* * Algorithm Flags */ /*!\brief Don't reference the last frame * * When this flag is set, the encoder will not use the last frame as a * predictor. When not set, the encoder will choose whether to use the * last frame or not automatically. */ #define VP8_EFLAG_NO_REF_LAST (1 << 16) /*!\brief Don't reference the golden frame * * When this flag is set, the encoder will not use the golden frame as a * predictor. When not set, the encoder will choose whether to use the * golden frame or not automatically. */ #define VP8_EFLAG_NO_REF_GF (1 << 17) /*!\brief Don't reference the alternate reference frame * * When this flag is set, the encoder will not use the alt ref frame as a * predictor. When not set, the encoder will choose whether to use the * alt ref frame or not automatically. */ #define VP8_EFLAG_NO_REF_ARF (1 << 21) /*!\brief Don't update the last frame * * When this flag is set, the encoder will not update the last frame with * the contents of the current frame. */ #define VP8_EFLAG_NO_UPD_LAST (1 << 18) /*!\brief Don't update the golden frame * * When this flag is set, the encoder will not update the golden frame with * the contents of the current frame. */ #define VP8_EFLAG_NO_UPD_GF (1 << 22) /*!\brief Don't update the alternate reference frame * * When this flag is set, the encoder will not update the alt ref frame with * the contents of the current frame. */ #define VP8_EFLAG_NO_UPD_ARF (1 << 23) /*!\brief Force golden frame update * * When this flag is set, the encoder copy the contents of the current frame * to the golden frame buffer. */ #define VP8_EFLAG_FORCE_GF (1 << 19) /*!\brief Force alternate reference frame update * * When this flag is set, the encoder copy the contents of the current frame * to the alternate reference frame buffer. */ #define VP8_EFLAG_FORCE_ARF (1 << 24) /*!\brief Disable entropy update * * When this flag is set, the encoder will not update its internal entropy * model based on the entropy of this frame. */ #define VP8_EFLAG_NO_UPD_ENTROPY (1 << 20) /*!\brief VPx encoder control functions * * This set of macros define the control functions available for VPx * encoder interface. * * \sa #vpx_codec_control */ enum vp8e_enc_control_id { /*!\brief Codec control function to pass an ROI map to encoder. * * Supported in codecs: VP8 */ VP8E_SET_ROI_MAP = 8, /*!\brief Codec control function to pass an Active map to encoder. * * Supported in codecs: VP8, VP9 */ VP8E_SET_ACTIVEMAP, /*!\brief Codec control function to set encoder scaling mode. * * Supported in codecs: VP8, VP9 */ VP8E_SET_SCALEMODE = 11, /*!\brief Codec control function to set encoder internal speed settings. * * Changes in this value influences, among others, the encoder's selection * of motion estimation methods. Values greater than 0 will increase encoder * speed at the expense of quality. * * \note Valid range for VP8: -16..16 * \note Valid range for VP9: -9..9 * \note A negative value (-n) is treated as its absolute value (n) in VP9. * * Supported in codecs: VP8, VP9 */ VP8E_SET_CPUUSED = 13, /*!\brief Codec control function to enable automatic use of arf frames. * * \note Valid range for VP8: 0..1 * \note Valid range for VP9: 0..6 * * Supported in codecs: VP8, VP9 */ VP8E_SET_ENABLEAUTOALTREF, /*!\brief control function to set noise sensitivity * * 0: off, 1: OnYOnly, 2: OnYUV, * 3: OnYUVAggressive, 4: Adaptive * * Supported in codecs: VP8 */ VP8E_SET_NOISE_SENSITIVITY, /*!\brief Codec control function to set higher sharpness at the expense * of a lower PSNR. * * \note Valid range: 0..7 * * Supported in codecs: VP8, VP9 */ VP8E_SET_SHARPNESS, /*!\brief Codec control function to set the threshold for MBs treated static. * * Supported in codecs: VP8, VP9 */ VP8E_SET_STATIC_THRESHOLD, /*!\brief Codec control function to set the number of token partitions. * * Supported in codecs: VP8 */ VP8E_SET_TOKEN_PARTITIONS, /*!\brief Codec control function to get last quantizer chosen by the encoder. * * Return value uses internal quantizer scale defined by the codec. * * Supported in codecs: VP8, VP9 */ VP8E_GET_LAST_QUANTIZER, /*!\brief Codec control function to get last quantizer chosen by the encoder. * * Return value uses the 0..63 scale as used by the rc_*_quantizer config * parameters. * * Supported in codecs: VP8, VP9 */ VP8E_GET_LAST_QUANTIZER_64, /*!\brief Codec control function to set the max no of frames to create arf. * * Supported in codecs: VP8, VP9 */ VP8E_SET_ARNR_MAXFRAMES, /*!\brief Codec control function to set the filter strength for the arf. * * Supported in codecs: VP8, VP9 */ VP8E_SET_ARNR_STRENGTH, /*!\deprecated control function to set the filter type to use for the arf. */ VP8E_SET_ARNR_TYPE, /*!\brief Codec control function to set visual tuning. * * Supported in codecs: VP8, VP9 */ VP8E_SET_TUNING, /*!\brief Codec control function to set constrained / constant quality level. * * \attention For this value to be used vpx_codec_enc_cfg_t::rc_end_usage must * be set to #VPX_CQ or #VPX_Q * \note Valid range: 0..63 * * Supported in codecs: VP8, VP9 */ VP8E_SET_CQ_LEVEL, /*!\brief Codec control function to set Max data rate for Intra frames. * * This value controls additional clamping on the maximum size of a * keyframe. It is expressed as a percentage of the average * per-frame bitrate, with the special (and default) value 0 meaning * unlimited, or no additional clamping beyond the codec's built-in * algorithm. * * For example, to allocate no more than 4.5 frames worth of bitrate * to a keyframe, set this to 450. * * Supported in codecs: VP8, VP9 */ VP8E_SET_MAX_INTRA_BITRATE_PCT, /*!\brief Codec control function to set reference and update frame flags. * * Supported in codecs: VP8 */ VP8E_SET_FRAME_FLAGS, /*!\brief Codec control function to set max data rate for Inter frames. * * This value controls additional clamping on the maximum size of an * inter frame. It is expressed as a percentage of the average * per-frame bitrate, with the special (and default) value 0 meaning * unlimited, or no additional clamping beyond the codec's built-in * algorithm. * * For example, to allow no more than 4.5 frames worth of bitrate * to an inter frame, set this to 450. * * Supported in codecs: VP9 */ VP9E_SET_MAX_INTER_BITRATE_PCT, /*!\brief Boost percentage for Golden Frame in CBR mode. * * This value controls the amount of boost given to Golden Frame in * CBR mode. It is expressed as a percentage of the average * per-frame bitrate, with the special (and default) value 0 meaning * the feature is off, i.e., no golden frame boost in CBR mode and * average bitrate target is used. * * For example, to allow 100% more bits, i.e., 2X, in a golden frame * than average frame, set this to 100. * * Supported in codecs: VP9 */ VP9E_SET_GF_CBR_BOOST_PCT, /*!\brief Codec control function to set the temporal layer id. * * For temporal scalability: this control allows the application to set the * layer id for each frame to be encoded. Note that this control must be set * for every frame prior to encoding. The usage of this control function * supersedes the internal temporal pattern counter, which is now deprecated. * * Supported in codecs: VP8 */ VP8E_SET_TEMPORAL_LAYER_ID, /*!\brief Codec control function to set encoder screen content mode. * * 0: off, 1: On, 2: On with more aggressive rate control. * * Supported in codecs: VP8 */ VP8E_SET_SCREEN_CONTENT_MODE, /*!\brief Codec control function to set lossless encoding mode. * * VP9 can operate in lossless encoding mode, in which the bitstream * produced will be able to decode and reconstruct a perfect copy of * input source. This control function provides a mean to switch encoder * into lossless coding mode(1) or normal coding mode(0) that may be lossy. * 0 = lossy coding mode * 1 = lossless coding mode * * By default, encoder operates in normal coding mode (maybe lossy). * * Supported in codecs: VP9 */ VP9E_SET_LOSSLESS, /*!\brief Codec control function to set number of tile columns. * * In encoding and decoding, VP9 allows an input image frame be partitioned * into separated vertical tile columns, which can be encoded or decoded * independently. This enables easy implementation of parallel encoding and * decoding. This control requests the encoder to use column tiles in * encoding an input frame, with number of tile columns (in Log2 unit) as * the parameter: * 0 = 1 tile column * 1 = 2 tile columns * 2 = 4 tile columns * ..... * n = 2**n tile columns * The requested tile columns will be capped by the encoder based on image * size limitations (The minimum width of a tile column is 256 pixels, the * maximum is 4096). * * By default, the value is 6, i.e., the maximum number of tiles supported by * the resolution. * * Supported in codecs: VP9 */ VP9E_SET_TILE_COLUMNS, /*!\brief Codec control function to set number of tile rows. * * In encoding and decoding, VP9 allows an input image frame be partitioned * into separated horizontal tile rows. Tile rows are encoded or decoded * sequentially. Even though encoding/decoding of later tile rows depends on * earlier ones, this allows the encoder to output data packets for tile rows * prior to completely processing all tile rows in a frame, thereby reducing * the latency in processing between input and output. The parameter * for this control describes the number of tile rows, which has a valid * range [0, 2]: * 0 = 1 tile row * 1 = 2 tile rows * 2 = 4 tile rows * * By default, the value is 0, i.e. one single row tile for entire image. * * Supported in codecs: VP9 */ VP9E_SET_TILE_ROWS, /*!\brief Codec control function to enable frame parallel decoding feature. * * VP9 has a bitstream feature to reduce decoding dependency between frames * by turning off backward update of probability context used in encoding * and decoding. This allows staged parallel processing of more than one * video frame in the decoder. This control function provides a means to * turn this feature on or off for bitstreams produced by encoder. * * By default, this feature is on. * * Supported in codecs: VP9 */ VP9E_SET_FRAME_PARALLEL_DECODING, /*!\brief Codec control function to set adaptive quantization mode. * * VP9 has a segment based feature that allows encoder to adaptively change * quantization parameter for each segment within a frame to improve the * subjective quality. This control makes encoder operate in one of the * several AQ_modes supported. * * By default, encoder operates with AQ_Mode 0(adaptive quantization off). * * Supported in codecs: VP9 */ VP9E_SET_AQ_MODE, /*!\brief Codec control function to enable/disable periodic Q boost. * * One VP9 encoder speed feature is to enable quality boost by lowering * frame level Q periodically. This control function provides a mean to * turn on/off this feature. * 0 = off * 1 = on * * By default, the encoder is allowed to use this feature for appropriate * encoding modes. * * Supported in codecs: VP9 */ VP9E_SET_FRAME_PERIODIC_BOOST, /*!\brief Codec control function to set noise sensitivity. * * 0: off, 1: On(YOnly), 2: For SVC only, on top two spatial layers(YOnly) * * Supported in codecs: VP9 */ VP9E_SET_NOISE_SENSITIVITY, /*!\brief Codec control function to turn on/off SVC in encoder. * \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not * support SVC in its current encoding mode * 0: off, 1: on * * Supported in codecs: VP9 */ VP9E_SET_SVC, /*!\brief Codec control function to pass an ROI map to encoder. * * Supported in codecs: VP9 */ VP9E_SET_ROI_MAP, /*!\brief Codec control function to set parameters for SVC. * \note Parameters contain min_q, max_q, scaling factor for each of the * SVC layers. * * Supported in codecs: VP9 */ VP9E_SET_SVC_PARAMETERS, /*!\brief Codec control function to set svc layer for spatial and temporal. * \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial * layer and 0..#vpx_codec_enc_cfg::ts_number_layers for * temporal layer. * * Supported in codecs: VP9 */ VP9E_SET_SVC_LAYER_ID, /*!\brief Codec control function to set content type. * \note Valid parameter range: * VP9E_CONTENT_DEFAULT = Regular video content (Default) * VP9E_CONTENT_SCREEN = Screen capture content * VP9E_CONTENT_FILM = Film content: improves grain retention * * Supported in codecs: VP9 */ VP9E_SET_TUNE_CONTENT, /*!\brief Codec control function to get svc layer ID. * \note The layer ID returned is for the data packet from the registered * callback function. * * Supported in codecs: VP9 */ VP9E_GET_SVC_LAYER_ID, /*!\brief Codec control function to register callback to get per layer packet. * \note Parameter for this control function is a structure with a callback * function and a pointer to private data used by the callback. * * Supported in codecs: VP9 */ VP9E_REGISTER_CX_CALLBACK, /*!\brief Codec control function to set color space info. * \note Valid ranges: 0..7, default is "UNKNOWN". * 0 = UNKNOWN, * 1 = BT_601 * 2 = BT_709 * 3 = SMPTE_170 * 4 = SMPTE_240 * 5 = BT_2020 * 6 = RESERVED * 7 = SRGB * * Supported in codecs: VP9 */ VP9E_SET_COLOR_SPACE, /*!\brief Codec control function to set minimum interval between GF/ARF frames * * By default the value is set as 4. * * Supported in codecs: VP9 */ VP9E_SET_MIN_GF_INTERVAL = 48, /*!\brief Codec control function to set minimum interval between GF/ARF frames * * By default the value is set as 16. * * Supported in codecs: VP9 */ VP9E_SET_MAX_GF_INTERVAL, /*!\brief Codec control function to get an Active map back from the encoder. * * Supported in codecs: VP9 */ VP9E_GET_ACTIVEMAP, /*!\brief Codec control function to set color range bit. * \note Valid ranges: 0..1, default is 0 * 0 = Limited range (16..235 or HBD equivalent) * 1 = Full range (0..255 or HBD equivalent) * * Supported in codecs: VP9 */ VP9E_SET_COLOR_RANGE, /*!\brief Codec control function to set the frame flags and buffer indices * for spatial layers. The frame flags and buffer indices are set using the * struct #vpx_svc_ref_frame_config defined below. * * Supported in codecs: VP9 */ VP9E_SET_SVC_REF_FRAME_CONFIG, /*!\brief Codec control function to set intended rendering image size. * * By default, this is identical to the image size in pixels. * * Supported in codecs: VP9 */ VP9E_SET_RENDER_SIZE, /*!\brief Codec control function to set target level. * * 255: off (default); 0: only keep level stats; 10: target for level 1.0; * 11: target for level 1.1; ... 62: target for level 6.2 * * Supported in codecs: VP9 */ VP9E_SET_TARGET_LEVEL, /*!\brief Codec control function to set row level multi-threading. * * 0 : off, 1 : on * * Supported in codecs: VP9 */ VP9E_SET_ROW_MT, /*!\brief Codec control function to get bitstream level. * * Supported in codecs: VP9 */ VP9E_GET_LEVEL, /*!\brief Codec control function to enable/disable special mode for altref * adaptive quantization. You can use it with --aq-mode concurrently. * * Enable special adaptive quantization for altref frames based on their * expected prediction quality for the future frames. * * Supported in codecs: VP9 */ VP9E_SET_ALT_REF_AQ, /*!\brief Boost percentage for Golden Frame in CBR mode. * * This value controls the amount of boost given to Golden Frame in * CBR mode. It is expressed as a percentage of the average * per-frame bitrate, with the special (and default) value 0 meaning * the feature is off, i.e., no golden frame boost in CBR mode and * average bitrate target is used. * * For example, to allow 100% more bits, i.e., 2X, in a golden frame * than average frame, set this to 100. * * Supported in codecs: VP8 */ VP8E_SET_GF_CBR_BOOST_PCT, /*!\brief Codec control function to enable the extreme motion vector unit test * in VP9. Please note that this is only used in motion vector unit test. * * 0 : off, 1 : MAX_EXTREME_MV, 2 : MIN_EXTREME_MV * * Supported in codecs: VP9 */ VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST, /*!\brief Codec control function to constrain the inter-layer prediction * (prediction of lower spatial resolution) in VP9 SVC. * * 0 : inter-layer prediction on, 1 : off, 2 : off only on non-key frames * * Supported in codecs: VP9 */ VP9E_SET_SVC_INTER_LAYER_PRED, /*!\brief Codec control function to set mode and thresholds for frame * dropping in SVC. Drop frame thresholds are set per-layer. Mode is set as: * 0 : layer-dependent dropping, 1 : constrained dropping, current layer drop * forces drop on all upper layers. Default mode is 0. * * Supported in codecs: VP9 */ VP9E_SET_SVC_FRAME_DROP_LAYER, /*!\brief Codec control function to get the refresh and reference flags and * the buffer indices, up to the last encoded spatial layer. * * Supported in codecs: VP9 */ VP9E_GET_SVC_REF_FRAME_CONFIG, /*!\brief Codec control function to enable/disable use of golden reference as * a second temporal reference for SVC. Only used when inter-layer prediction * is disabled on INTER frames. * * 0: Off, 1: Enabled (default) * * Supported in codecs: VP9 */ VP9E_SET_SVC_GF_TEMPORAL_REF, /*!\brief Codec control function to enable spatial layer sync frame, for any * spatial layer. Enabling it for layer k means spatial layer k will disable * all temporal prediction, but keep the inter-layer prediction. It will * refresh any temporal reference buffer for that layer, and reset the * temporal layer for the superframe to 0. Setting the layer sync for base * spatial layer forces a key frame. Default is off (0) for all spatial * layers. Spatial layer sync flag is reset to 0 after each encoded layer, * so when control is invoked it is only used for the current superframe. * * 0: Off (default), 1: Enabled * * Supported in codecs: VP9 */ VP9E_SET_SVC_SPATIAL_LAYER_SYNC, /*!\brief Codec control function to enable temporal dependency model. * * Vp9 allows the encoder to run temporal dependency model and use it to * improve the compression performance. To enable, set this parameter to be * 1. The default value is set to be 1. */ VP9E_SET_TPL, /*!\brief Codec control function to enable postencode frame drop. * * This will allow encoder to drop frame after it's encoded. * * 0: Off (default), 1: Enabled * * Supported in codecs: VP9 */ VP9E_SET_POSTENCODE_DROP, /*!\brief Codec control function to set delta q for uv. * * Cap it at +/-15. * * Supported in codecs: VP9 */ VP9E_SET_DELTA_Q_UV, /*!\brief Codec control function to disable increase Q on overshoot in CBR. * * 0: On (default), 1: Disable. * * Supported in codecs: VP9 */ VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR, /*!\brief Codec control function to disable loopfilter. * * 0: Loopfilter on all frames, 1: Disable on non reference frames. * 2: Disable on all frames. * * Supported in codecs: VP9 */ VP9E_SET_DISABLE_LOOPFILTER, /*!\brief Codec control function to enable external rate control library. * * args[0]: path of the rate control library * * args[1]: private config of the rate control library * * Supported in codecs: VP9 */ VP9E_SET_EXTERNAL_RATE_CONTROL, /*!\brief Codec control to disable internal features in rate control. * * This will do 3 things, only for 1 pass: * - Turn off low motion computation * - Turn off gf update constraint on key frame frequency * - Turn off content mode for cyclic refresh * * With those, the rate control is expected to work exactly the same as the * interface provided in ratectrl_rtc.cc/h * * Supported in codecs: VP9 */ VP9E_SET_RTC_EXTERNAL_RATECTRL, /*!\brief Codec control function to get loopfilter level in the encoder. * * Supported in codecs: VP9 */ VP9E_GET_LOOPFILTER_LEVEL, /*!\brief Codec control to get last quantizers for all spatial layers. * * Return value uses an array of internal quantizers scale defined by the * codec, for all spatial layers. * The size of the array passed in should be #VPX_SS_MAX_LAYERS. * * Supported in codecs: VP9 */ VP9E_GET_LAST_QUANTIZER_SVC_LAYERS, /*!\brief Codec control to disable internal features in rate control. * * This will turn off cyclic refresh for vp8. * * With this, the rate control is expected to work exactly the same as the * interface provided in vp8_ratectrl_rtc.cc/h * * Supported in codecs: VP8 */ VP8E_SET_RTC_EXTERNAL_RATECTRL, /*!\brief Codec control to set quantizer for the next frame. * * This will turn off cyclic refresh. Only applicable to 1-pass without * spatial layers. * * Supported in codecs: VP9 * */ VP9E_SET_QUANTIZER_ONE_PASS, /*!\brief Codec control to use external RC to control TPL. * * This will use external RC to control the QP and GOP structure for TPL. * (rc_type & VPX_RC_QP) in vpx_rc_funcs_t must be non zero. * get_encodeframe_decision callback in vpx_rc_funcs_t also needs to be set. * * Supported in codecs: VP9 */ VP9E_ENABLE_EXTERNAL_RC_TPL, }; /*!\brief vpx 1-D scaling mode * * This set of constants define 1-D vpx scaling modes */ typedef enum vpx_scaling_mode_1d { VP8E_NORMAL = 0, VP8E_FOURFIVE = 1, VP8E_THREEFIVE = 2, VP8E_ONETWO = 3 } VPX_SCALING_MODE; /*!\brief Temporal layering mode enum for VP9 SVC. * * This set of macros define the different temporal layering modes. * Supported codecs: VP9 (in SVC mode) * */ typedef enum vp9e_temporal_layering_mode { /*!\brief No temporal layering. * Used when only spatial layering is used. */ VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING = 0, /*!\brief Bypass mode. * Used when application needs to control temporal layering. * This will only work when the number of spatial layers equals 1. */ VP9E_TEMPORAL_LAYERING_MODE_BYPASS = 1, /*!\brief 0-1-0-1... temporal layering scheme with two temporal layers. */ VP9E_TEMPORAL_LAYERING_MODE_0101 = 2, /*!\brief 0-2-1-2... temporal layering scheme with three temporal layers. */ VP9E_TEMPORAL_LAYERING_MODE_0212 = 3 } VP9E_TEMPORAL_LAYERING_MODE; /*!\brief vpx region of interest map * * These defines the data structures for the region of interest map * */ typedef struct vpx_roi_map { /*! If ROI is enabled. */ uint8_t enabled; /*! An id between 0-3 (0-7 for vp9) for each 16x16 (8x8 for VP9) * region within a frame. */ unsigned char *roi_map; unsigned int rows; /**< Number of rows. */ unsigned int cols; /**< Number of columns. */ /*! VP8 only uses the first 4 segments. VP9 uses 8 segments. */ int delta_q[8]; /**< Quantizer deltas. Valid range: [-63, 63].*/ int delta_lf[8]; /**< Loop filter deltas. Valid range: [-63, 63].*/ /*! skip and ref frame segment is only used in VP9. */ int skip[8]; /**< Skip this block. */ int ref_frame[8]; /**< Reference frame for this block. */ /*! Static breakout threshold for each segment. Only used in VP8. */ unsigned int static_threshold[4]; } vpx_roi_map_t; /*!\brief vpx active region map * * These defines the data structures for active region map * */ typedef struct vpx_active_map { /*!\brief specify an on (1) or off (0) each 16x16 region within a frame */ unsigned char *active_map; unsigned int rows; /**< number of rows */ unsigned int cols; /**< number of cols */ } vpx_active_map_t; /*!\brief vpx image scaling mode * * This defines the data structure for image scaling mode * */ typedef struct vpx_scaling_mode { VPX_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */ VPX_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */ } vpx_scaling_mode_t; /*!\brief VP8 token partition mode * * This defines VP8 partitioning mode for compressed data, i.e., the number of * sub-streams in the bitstream. Used for parallelized decoding. * */ typedef enum { VP8_ONE_TOKENPARTITION = 0, VP8_TWO_TOKENPARTITION = 1, VP8_FOUR_TOKENPARTITION = 2, VP8_EIGHT_TOKENPARTITION = 3 } vp8e_token_partitions; /*!brief VP9 encoder content type */ typedef enum { VP9E_CONTENT_DEFAULT, VP9E_CONTENT_SCREEN, VP9E_CONTENT_FILM, VP9E_CONTENT_INVALID } vp9e_tune_content; /*!\brief VP8 model tuning parameters * * Changes the encoder to tune for certain types of input material. * */ typedef enum { VP8_TUNE_PSNR, VP8_TUNE_SSIM } vp8e_tuning; /*!\brief vp9 svc layer parameters * * This defines the spatial and temporal layer id numbers for svc encoding. * This is used with the #VP9E_SET_SVC_LAYER_ID control to set the spatial and * temporal layer id for the current frame. * */ typedef struct vpx_svc_layer_id { int spatial_layer_id; /**< First spatial layer to start encoding. */ // TODO(jianj): Deprecated, to be removed. int temporal_layer_id; /**< Temporal layer id number. */ int temporal_layer_id_per_spatial[VPX_SS_MAX_LAYERS]; /**< Temp layer id. */ } vpx_svc_layer_id_t; /*!\brief vp9 svc frame flag parameters. * * This defines the frame flags and buffer indices for each spatial layer for * svc encoding. * This is used with the #VP9E_SET_SVC_REF_FRAME_CONFIG control to set frame * flags and buffer indices for each spatial layer for the current (super)frame. * */ typedef struct vpx_svc_ref_frame_config { int lst_fb_idx[VPX_SS_MAX_LAYERS]; /**< Last buffer index. */ int gld_fb_idx[VPX_SS_MAX_LAYERS]; /**< Golden buffer index. */ int alt_fb_idx[VPX_SS_MAX_LAYERS]; /**< Altref buffer index. */ int update_buffer_slot[VPX_SS_MAX_LAYERS]; /**< Update reference frames. */ // TODO(jianj): Remove update_last/golden/alt_ref, these are deprecated. int update_last[VPX_SS_MAX_LAYERS]; /**< Update last. */ int update_golden[VPX_SS_MAX_LAYERS]; /**< Update golden. */ int update_alt_ref[VPX_SS_MAX_LAYERS]; /**< Update altref. */ int reference_last[VPX_SS_MAX_LAYERS]; /**< Last as reference. */ int reference_golden[VPX_SS_MAX_LAYERS]; /**< Golden as reference. */ int reference_alt_ref[VPX_SS_MAX_LAYERS]; /**< Altref as reference. */ int64_t duration[VPX_SS_MAX_LAYERS]; /**< Duration per spatial layer. */ } vpx_svc_ref_frame_config_t; /*!\brief VP9 svc frame dropping mode. * * This defines the frame drop mode for SVC. * */ typedef enum { CONSTRAINED_LAYER_DROP, /**< Upper layers are constrained to drop if current layer drops. */ LAYER_DROP, /**< Any spatial layer can drop. */ FULL_SUPERFRAME_DROP, /**< Only full superframe can drop. */ CONSTRAINED_FROM_ABOVE_DROP, /**< Lower layers are constrained to drop if current layer drops. */ } SVC_LAYER_DROP_MODE; /*!\brief vp9 svc frame dropping parameters. * * This defines the frame drop thresholds for each spatial layer, and * the frame dropping mode: 0 = layer based frame dropping (default), * 1 = constrained dropping where current layer drop forces all upper * spatial layers to drop. */ typedef struct vpx_svc_frame_drop { int framedrop_thresh[VPX_SS_MAX_LAYERS]; /**< Frame drop thresholds */ SVC_LAYER_DROP_MODE framedrop_mode; /**< Layer-based or constrained dropping. */ int max_consec_drop; /**< Maximum consecutive drops, for any layer. */ } vpx_svc_frame_drop_t; /*!\brief vp9 svc spatial layer sync parameters. * * This defines the spatial layer sync flag, defined per spatial layer. * */ typedef struct vpx_svc_spatial_layer_sync { int spatial_layer_sync[VPX_SS_MAX_LAYERS]; /**< Sync layer flags */ int base_layer_intra_only; /**< Flag for setting Intra-only frame on base */ } vpx_svc_spatial_layer_sync_t; /*!\cond */ /*!\brief VP8 encoder control function parameter type * * Defines the data types that VP8E control functions take. Note that * additional common controls are defined in vp8.h * */ VPX_CTRL_USE_TYPE(VP8E_SET_ROI_MAP, vpx_roi_map_t *) #define VPX_CTRL_VP8E_SET_ROI_MAP VPX_CTRL_USE_TYPE(VP8E_SET_ACTIVEMAP, vpx_active_map_t *) #define VPX_CTRL_VP8E_SET_ACTIVEMAP VPX_CTRL_USE_TYPE(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *) #define VPX_CTRL_VP8E_SET_SCALEMODE VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int) #define VPX_CTRL_VP8E_SET_CPUUSED VPX_CTRL_USE_TYPE(VP8E_SET_ENABLEAUTOALTREF, unsigned int) #define VPX_CTRL_VP8E_SET_ENABLEAUTOALTREF VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int) #define VPX_CTRL_VP8E_SET_NOISE_SENSITIVITY VPX_CTRL_USE_TYPE(VP8E_SET_SHARPNESS, unsigned int) #define VPX_CTRL_VP8E_SET_SHARPNESS VPX_CTRL_USE_TYPE(VP8E_SET_STATIC_THRESHOLD, unsigned int) #define VPX_CTRL_VP8E_SET_STATIC_THRESHOLD VPX_CTRL_USE_TYPE(VP8E_SET_TOKEN_PARTITIONS, int) /* vp8e_token_partitions */ #define VPX_CTRL_VP8E_SET_TOKEN_PARTITIONS VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *) #define VPX_CTRL_VP8E_GET_LAST_QUANTIZER VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *) #define VPX_CTRL_VP8E_GET_LAST_QUANTIZER_64 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int) #define VPX_CTRL_VP8E_SET_ARNR_MAXFRAMES VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH, unsigned int) #define VPX_CTRL_VP8E_SET_ARNR_STRENGTH VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_ARNR_TYPE, unsigned int) #define VPX_CTRL_VP8E_SET_ARNR_TYPE VPX_CTRL_USE_TYPE(VP8E_SET_TUNING, int) /* vp8e_tuning */ #define VPX_CTRL_VP8E_SET_TUNING VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL, unsigned int) #define VPX_CTRL_VP8E_SET_CQ_LEVEL VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int) #define VPX_CTRL_VP8E_SET_MAX_INTRA_BITRATE_PCT VPX_CTRL_USE_TYPE(VP8E_SET_FRAME_FLAGS, int) #define VPX_CTRL_VP8E_SET_FRAME_FLAGS VPX_CTRL_USE_TYPE(VP9E_SET_MAX_INTER_BITRATE_PCT, unsigned int) #define VPX_CTRL_VP9E_SET_MAX_INTER_BITRATE_PCT VPX_CTRL_USE_TYPE(VP9E_SET_GF_CBR_BOOST_PCT, unsigned int) #define VPX_CTRL_VP9E_SET_GF_CBR_BOOST_PCT VPX_CTRL_USE_TYPE(VP8E_SET_TEMPORAL_LAYER_ID, int) #define VPX_CTRL_VP8E_SET_TEMPORAL_LAYER_ID VPX_CTRL_USE_TYPE(VP8E_SET_SCREEN_CONTENT_MODE, unsigned int) #define VPX_CTRL_VP8E_SET_SCREEN_CONTENT_MODE VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int) #define VPX_CTRL_VP9E_SET_LOSSLESS VPX_CTRL_USE_TYPE(VP9E_SET_TILE_COLUMNS, int) #define VPX_CTRL_VP9E_SET_TILE_COLUMNS VPX_CTRL_USE_TYPE(VP9E_SET_TILE_ROWS, int) #define VPX_CTRL_VP9E_SET_TILE_ROWS VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int) #define VPX_CTRL_VP9E_SET_FRAME_PARALLEL_DECODING VPX_CTRL_USE_TYPE(VP9E_SET_AQ_MODE, unsigned int) #define VPX_CTRL_VP9E_SET_AQ_MODE VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PERIODIC_BOOST, unsigned int) #define VPX_CTRL_VP9E_SET_FRAME_PERIODIC_BOOST VPX_CTRL_USE_TYPE(VP9E_SET_NOISE_SENSITIVITY, unsigned int) #define VPX_CTRL_VP9E_SET_NOISE_SENSITIVITY VPX_CTRL_USE_TYPE(VP9E_SET_SVC, int) #define VPX_CTRL_VP9E_SET_SVC VPX_CTRL_USE_TYPE(VP9E_SET_ROI_MAP, vpx_roi_map_t *) #define VPX_CTRL_VP9E_SET_ROI_MAP VPX_CTRL_USE_TYPE(VP9E_SET_SVC_PARAMETERS, void *) #define VPX_CTRL_VP9E_SET_SVC_PARAMETERS VPX_CTRL_USE_TYPE(VP9E_SET_SVC_LAYER_ID, vpx_svc_layer_id_t *) #define VPX_CTRL_VP9E_SET_SVC_LAYER_ID VPX_CTRL_USE_TYPE(VP9E_SET_TUNE_CONTENT, int) /* vp9e_tune_content */ #define VPX_CTRL_VP9E_SET_TUNE_CONTENT VPX_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, vpx_svc_layer_id_t *) #define VPX_CTRL_VP9E_GET_SVC_LAYER_ID VPX_CTRL_USE_TYPE(VP9E_REGISTER_CX_CALLBACK, void *) #define VPX_CTRL_VP9E_REGISTER_CX_CALLBACK VPX_CTRL_USE_TYPE(VP9E_SET_COLOR_SPACE, int) #define VPX_CTRL_VP9E_SET_COLOR_SPACE VPX_CTRL_USE_TYPE(VP9E_SET_MIN_GF_INTERVAL, unsigned int) #define VPX_CTRL_VP9E_SET_MIN_GF_INTERVAL VPX_CTRL_USE_TYPE(VP9E_SET_MAX_GF_INTERVAL, unsigned int) #define VPX_CTRL_VP9E_SET_MAX_GF_INTERVAL VPX_CTRL_USE_TYPE(VP9E_GET_ACTIVEMAP, vpx_active_map_t *) #define VPX_CTRL_VP9E_GET_ACTIVEMAP VPX_CTRL_USE_TYPE(VP9E_SET_COLOR_RANGE, int) #define VPX_CTRL_VP9E_SET_COLOR_RANGE VPX_CTRL_USE_TYPE(VP9E_SET_SVC_REF_FRAME_CONFIG, vpx_svc_ref_frame_config_t *) #define VPX_CTRL_VP9E_SET_SVC_REF_FRAME_CONFIG VPX_CTRL_USE_TYPE(VP9E_SET_RENDER_SIZE, int *) #define VPX_CTRL_VP9E_SET_RENDER_SIZE VPX_CTRL_USE_TYPE(VP9E_SET_TARGET_LEVEL, unsigned int) #define VPX_CTRL_VP9E_SET_TARGET_LEVEL VPX_CTRL_USE_TYPE(VP9E_SET_ROW_MT, unsigned int) #define VPX_CTRL_VP9E_SET_ROW_MT VPX_CTRL_USE_TYPE(VP9E_GET_LEVEL, int *) #define VPX_CTRL_VP9E_GET_LEVEL VPX_CTRL_USE_TYPE(VP9E_SET_ALT_REF_AQ, int) #define VPX_CTRL_VP9E_SET_ALT_REF_AQ VPX_CTRL_USE_TYPE(VP8E_SET_GF_CBR_BOOST_PCT, unsigned int) #define VPX_CTRL_VP8E_SET_GF_CBR_BOOST_PCT VPX_CTRL_USE_TYPE(VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST, unsigned int) #define VPX_CTRL_VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST VPX_CTRL_USE_TYPE(VP9E_SET_SVC_INTER_LAYER_PRED, unsigned int) #define VPX_CTRL_VP9E_SET_SVC_INTER_LAYER_PRED VPX_CTRL_USE_TYPE(VP9E_SET_SVC_FRAME_DROP_LAYER, vpx_svc_frame_drop_t *) #define VPX_CTRL_VP9E_SET_SVC_FRAME_DROP_LAYER VPX_CTRL_USE_TYPE(VP9E_GET_SVC_REF_FRAME_CONFIG, vpx_svc_ref_frame_config_t *) #define VPX_CTRL_VP9E_GET_SVC_REF_FRAME_CONFIG VPX_CTRL_USE_TYPE(VP9E_SET_SVC_GF_TEMPORAL_REF, unsigned int) #define VPX_CTRL_VP9E_SET_SVC_GF_TEMPORAL_REF VPX_CTRL_USE_TYPE(VP9E_SET_SVC_SPATIAL_LAYER_SYNC, vpx_svc_spatial_layer_sync_t *) #define VPX_CTRL_VP9E_SET_SVC_SPATIAL_LAYER_SYNC VPX_CTRL_USE_TYPE(VP9E_SET_TPL, int) #define VPX_CTRL_VP9E_SET_TPL VPX_CTRL_USE_TYPE(VP9E_SET_POSTENCODE_DROP, unsigned int) #define VPX_CTRL_VP9E_SET_POSTENCODE_DROP VPX_CTRL_USE_TYPE(VP9E_SET_DELTA_Q_UV, int) #define VPX_CTRL_VP9E_SET_DELTA_Q_UV VPX_CTRL_USE_TYPE(VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR, int) #define VPX_CTRL_VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR VPX_CTRL_USE_TYPE(VP9E_SET_DISABLE_LOOPFILTER, int) #define VPX_CTRL_VP9E_SET_DISABLE_LOOPFILTER VPX_CTRL_USE_TYPE(VP9E_SET_EXTERNAL_RATE_CONTROL, vpx_rc_funcs_t *) #define VPX_CTRL_VP9E_SET_EXTERNAL_RATE_CONTROL VPX_CTRL_USE_TYPE(VP9E_SET_RTC_EXTERNAL_RATECTRL, int) #define VPX_CTRL_VP9E_SET_RTC_EXTERNAL_RATECTRL VPX_CTRL_USE_TYPE(VP9E_GET_LOOPFILTER_LEVEL, int *) #define VPX_CTRL_VP9E_GET_LOOPFILTER_LEVEL VPX_CTRL_USE_TYPE(VP9E_GET_LAST_QUANTIZER_SVC_LAYERS, int *) #define VPX_CTRL_VP9E_GET_LAST_QUANTIZER_SVC_LAYERS VPX_CTRL_USE_TYPE(VP8E_SET_RTC_EXTERNAL_RATECTRL, int) #define VPX_CTRL_VP8E_SET_RTC_EXTERNAL_RATECTRL VPX_CTRL_USE_TYPE(VP9E_SET_QUANTIZER_ONE_PASS, int) #define VPX_CTRL_VP9E_SET_QUANTIZER_ONE_PASS VPX_CTRL_USE_TYPE(VP9E_ENABLE_EXTERNAL_RC_TPL, int) #define VPX_CTRL_VP9E_ENABLE_EXTERNAL_RC_TPL /*!\endcond */ /*! @} - end defgroup vp8_encoder */ #ifdef __cplusplus } // extern "C" #endif # 1119 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" #endif // VPX_VPX_VP8CX_H_ # 1121 "../../third_party/libvpx/source/libvpx/vpx/vp8cx.h" #endif /* vp8cx.h expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_encoder.h" #endif /* expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" # 22 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_scale/yv12config.h" #endif /* expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" # 23 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* ppflags.h expanded by -frewrite-includes */ #include "ppflags.h" #else /* ppflags.h expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/ppflags.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_PPFLAGS_H_ #define VPX_VP8_COMMON_PPFLAGS_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vp8/common/ppflags.h" enum { VP8D_NOFILTERING = 0, VP8D_DEBLOCK = 1 << 0, VP8D_DEMACROBLOCK = 1 << 1, VP8D_ADDNOISE = 1 << 2, VP8D_MFQE = 1 << 3 }; typedef struct { int post_proc_flag; int deblocking_level; int noise_level; int display_ref_frame_flag; int display_mb_modes_flag; int display_b_modes_flag; int display_mv_flag; } vp8_ppflags_t; #ifdef __cplusplus } // extern "C" #endif # 38 "../../third_party/libvpx/source/libvpx/vp8/common/ppflags.h" #endif // VPX_VP8_COMMON_PPFLAGS_H_ # 40 "../../third_party/libvpx/source/libvpx/vp8/common/ppflags.h" #endif /* ppflags.h expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" 2 struct VP8_COMP; /* Create/destroy static data structures. */ typedef enum { USAGE_LOCAL_FILE_PLAYBACK = 0x0, USAGE_STREAM_FROM_SERVER = 0x1, USAGE_CONSTRAINED_QUALITY = 0x2, USAGE_CONSTANT_QUALITY = 0x3 } END_USAGE; typedef enum { MODE_REALTIME = 0x0, MODE_GOODQUALITY = 0x1, MODE_BESTQUALITY = 0x2, MODE_FIRSTPASS = 0x3, MODE_SECONDPASS = 0x4, MODE_SECONDPASS_BEST = 0x5 } MODE; typedef enum { FRAMEFLAGS_KEY = 1, FRAMEFLAGS_GOLDEN = 2, FRAMEFLAGS_ALTREF = 4 } FRAMETYPE_FLAGS; #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 51 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 1 3 4 /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /** * @file assert.h * @brief Assertions. * * There's no include guard in this file because may usefully be * included multiple times, with and without NDEBUG defined. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #undef assert #undef __assert_no_op /** Internal implementation detail. Do not use. */ #define __assert_no_op __BIONIC_CAST(static_cast, void, 0) #ifdef NDEBUG # define assert(e) __assert_no_op #else # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined(__cplusplus) || __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e)) # else # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /** * assert() aborts the program after logging an error message, if the * expression evaluates to false. * * On Android, the error goes to both stderr and logcat. */ # define assert(e) ((e) ? __assert_no_op : __assert(__FILE__, __LINE__, #e)) # endif # 65 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #endif # 66 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /* `static_assert` is a keyword in C++11 and C23; C11 had `_Static_assert` instead. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) && (__STDC_VERSION__ >= 201112L && __STDC_VERSION__ < 202311L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 72 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 __BEGIN_DECLS /** * __assert() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert(const char* _Nonnull __file, int __line, const char* _Nonnull __msg) __noreturn; /** * __assert2() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert2(const char* _Nonnull __file, int __line, const char* _Nonnull __function, const char* _Nonnull __msg) __noreturn; __END_DECLS #endif /* assert.h expanded by -frewrite-includes */ # 52 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" 2 static INLINE void Scale2Ratio(int mode, int *hr, int *hs) { switch (mode) { case VP8E_NORMAL: *hr = 1; *hs = 1; break; case VP8E_FOURFIVE: *hr = 4; *hs = 5; break; case VP8E_THREEFIVE: *hr = 3; *hs = 5; break; case VP8E_ONETWO: *hr = 1; *hs = 2; break; default: *hr = 1; *hs = 1; assert(0); break; } } typedef struct { /* 4 versions of bitstream defined: * 0 best quality/slowest decode, 3 lowest quality/fastest decode */ int Version; int Width; int Height; struct vpx_rational timebase; /* In either kilobits per second or bits per second, depending on which * copy of oxcf this is in. * - ctx->oxcf.target_bandwidth is in kilobits per second. See * set_vp8e_config(). * - ctx->cpi->oxcf.target_bandwidth in is bits per second. See * vp8_change_config(). */ unsigned int target_bandwidth; /* Parameter used for applying denoiser. * For temporal denoiser: noise_sensitivity = 0 means off, * noise_sensitivity = 1 means temporal denoiser on for Y channel only, * noise_sensitivity = 2 means temporal denoiser on for all channels. * noise_sensitivity = 3 means aggressive denoising mode. * noise_sensitivity >= 4 means adaptive denoising mode. * Temporal denoiser is enabled via the configuration option: * CONFIG_TEMPORAL_DENOISING. * For spatial denoiser: noise_sensitivity controls the amount of * pre-processing blur: noise_sensitivity = 0 means off. * Spatial denoiser invoked under !CONFIG_TEMPORAL_DENOISING. */ int noise_sensitivity; /* parameter used for sharpening output: recommendation 0: */ int Sharpness; int cpu_used; unsigned int rc_max_intra_bitrate_pct; /* percent of rate boost for golden frame in CBR mode. */ unsigned int gf_cbr_boost_pct; unsigned int screen_content_mode; /* mode -> *(0)=Realtime/Live Encoding. This mode is optimized for realtim * encoding (for example, capturing a television signal or feed * from a live camera). ( speed setting controls how fast ) *(1)=Good Quality Fast Encoding. The encoder balances quality with * the amount of time it takes to encode the output. ( speed * setting controls how fast ) *(2)=One Pass - Best Quality. The encoder places priority on the * quality of the output over encoding speed. The output is * compressed at the highest possible quality. This option takes * the longest amount of time to encode. ( speed setting ignored * ) *(3)=Two Pass - First Pass. The encoder generates a file of * statistics for use in the second encoding pass. ( speed * setting controls how fast ) *(4)=Two Pass - Second Pass. The encoder uses the statistics that * were generated in the first encoding pass to create the * compressed output. ( speed setting controls how fast ) *(5)=Two Pass - Second Pass Best. The encoder uses the statistics * that were generated in the first encoding pass to create the * compressed output using the highest possible quality, and * taking a longer amount of time to encode.. ( speed setting * ignored ) */ int Mode; /* Key Framing Operations */ int auto_key; /* automatically detect cut scenes */ int key_freq; /* maximum distance to key frame. */ /* lagged compression (if allow_lag == 0 lag_in_frames is ignored) */ int allow_lag; int lag_in_frames; /* how many frames lag before we start encoding */ /* * DATARATE CONTROL OPTIONS */ int end_usage; /* vbr or cbr */ /* buffer targeting aggressiveness */ int under_shoot_pct; int over_shoot_pct; /* buffering parameters */ int64_t starting_buffer_level; int64_t optimal_buffer_level; int64_t maximum_buffer_size; int64_t starting_buffer_level_in_ms; int64_t optimal_buffer_level_in_ms; int64_t maximum_buffer_size_in_ms; /* controlling quality */ int fixed_q; int worst_allowed_q; int best_allowed_q; int cq_level; /* allow internal resizing */ int allow_spatial_resampling; int resample_down_water_mark; int resample_up_water_mark; /* allow internal frame rate alterations */ int allow_df; int drop_frames_water_mark; /* two pass datarate control */ int two_pass_vbrbias; int two_pass_vbrmin_section; int two_pass_vbrmax_section; /* * END DATARATE CONTROL OPTIONS */ /* these parameters aren't to be used in final build don't use!!! */ int play_alternate; int alt_freq; int alt_q; int key_q; int gold_q; int multi_threaded; /* how many threads to run the encoder on */ int token_partitions; /* how many token partitions to create */ /* early breakout threshold: for video conf recommend 800 */ int encode_breakout; /* Bitfield defining the error resiliency features to enable. * Can provide decodable frames after losses in previous * frames and decodable partitions after losses in the same frame. */ unsigned int error_resilient_mode; int arnr_max_frames; int arnr_strength; int arnr_type; vpx_fixed_buf_t two_pass_stats_in; struct vpx_codec_pkt_list *output_pkt_list; vp8e_tuning tuning; /* Temporal scaling parameters */ unsigned int number_of_layers; /* kilobits per second */ unsigned int target_bitrate[VPX_TS_MAX_PERIODICITY]; unsigned int rate_decimator[VPX_TS_MAX_PERIODICITY]; unsigned int periodicity; unsigned int layer_id[VPX_TS_MAX_PERIODICITY]; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTI_RES_ENCODING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 231 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" /* Number of total resolutions encoded */ unsigned int mr_total_resolutions; /* Current encoder ID */ unsigned int mr_encoder_id; /* Down-sampling factor */ vpx_rational_t mr_down_sampling_factor; /* Memory location to store low-resolution encoder's mode info */ void *mr_low_res_mode_info; #endif # 243 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" } VP8_CONFIG; void vp8_initialize(void); struct VP8_COMP *vp8_create_compressor(const VP8_CONFIG *oxcf); void vp8_remove_compressor(struct VP8_COMP **comp); void vp8_init_config(struct VP8_COMP *onyx, VP8_CONFIG *oxcf); void vp8_change_config(struct VP8_COMP *cpi, const VP8_CONFIG *oxcf); int vp8_receive_raw_frame(struct VP8_COMP *cpi, unsigned int frame_flags, YV12_BUFFER_CONFIG *sd, int64_t time_stamp, int64_t end_time); int vp8_get_compressed_data(struct VP8_COMP *cpi, unsigned int *frame_flags, size_t *size, unsigned char *dest, unsigned char *dest_end, int64_t *time_stamp, int64_t *time_end, int flush); int vp8_get_preview_raw_frame(struct VP8_COMP *cpi, YV12_BUFFER_CONFIG *dest, vp8_ppflags_t *flags); int vp8_use_as_reference(struct VP8_COMP *cpi, int ref_frame_flags); int vp8_update_reference(struct VP8_COMP *cpi, int ref_frame_flags); int vp8_get_reference(struct VP8_COMP *cpi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd); int vp8_set_reference(struct VP8_COMP *cpi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd); int vp8_update_entropy(struct VP8_COMP *cpi, int update); int vp8_set_roimap(struct VP8_COMP *cpi, unsigned char *map, unsigned int rows, unsigned int cols, int delta_q[4], int delta_lf[4], unsigned int threshold[4]); int vp8_set_active_map(struct VP8_COMP *cpi, unsigned char *map, unsigned int rows, unsigned int cols); int vp8_set_internal_size(struct VP8_COMP *cpi, VPX_SCALING_MODE horiz_mode, VPX_SCALING_MODE vert_mode); int vp8_get_quantizer(struct VP8_COMP *cpi); #ifdef __cplusplus } #endif # 284 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" #endif // VPX_VP8_COMMON_ONYX_H_ # 286 "../../third_party/libvpx/source/libvpx/vp8/common/onyx.h" #endif /* onyx.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/blockd.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* entropymv.h expanded by -frewrite-includes */ #include "vp8/common/entropymv.h" #else /* entropymv.h expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/entropymv.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_ENTROPYMV_H_ #define VPX_VP8_COMMON_ENTROPYMV_H_ #if 0 /* expanded by -frewrite-includes */ #include "treecoder.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/entropymv.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/entropymv.h" #ifdef __cplusplus extern "C" { #endif # 19 "../../third_party/libvpx/source/libvpx/vp8/common/entropymv.h" enum { mv_max = 1023, /* max absolute value of a MV component */ MVvals = (2 * mv_max) + 1, /* # possible values "" */ mvfp_max = 255, /* max absolute value of a full pixel MV component */ MVfpvals = (2 * mvfp_max) + 1, /* # possible full pixel MV values */ mvlong_width = 10, /* Large MVs have 9 bit magnitudes */ mvnum_short = 8, /* magnitudes 0 through 7 */ /* probability offsets for coding each MV component */ mvpis_short = 0, /* short (<= 7) vs long (>= 8) */ MVPsign, /* sign for non-zero */ MVPshort, /* 8 short values = 7-position tree */ MVPbits = MVPshort + mvnum_short - 1, /* mvlong_width long value bits */ MVPcount = MVPbits + mvlong_width /* (with independent probabilities) */ }; typedef struct mv_context { vp8_prob prob[MVPcount]; /* often come in row, col pairs */ } MV_CONTEXT; extern const MV_CONTEXT vp8_mv_update_probs[2], vp8_default_mv_context[2]; #ifdef __cplusplus } // extern "C" #endif # 48 "../../third_party/libvpx/source/libvpx/vp8/common/entropymv.h" #endif // VPX_VP8_COMMON_ENTROPYMV_H_ # 50 "../../third_party/libvpx/source/libvpx/vp8/common/entropymv.h" #endif /* entropymv.h expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/entropy.h" #endif /* expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/mem.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" #ifdef __cplusplus extern "C" { #endif # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" #define MAX_MODES 20 #define MAX_ERROR_BINS 1024 /* motion search site */ typedef struct { MV mv; int offset; } search_site; typedef struct block { /* 16 Y blocks, 4 U blocks, 4 V blocks each with 16 entries */ short *src_diff; short *coeff; /* 16 Y blocks, 4 U blocks, 4 V blocks each with 16 entries */ short *quant; short *quant_fast; short *quant_shift; short *zbin; short *zrun_zbin_boost; short *round; /* Zbin Over Quant value */ short zbin_extra; unsigned char **base_src; int src; int src_stride; } BLOCK; typedef struct { int count; struct { B_PREDICTION_MODE mode; int_mv mv; } bmi[16]; } PARTITION_INFO; typedef struct macroblock { DECLARE_ALIGNED(16, short, src_diff[400]); /* 25 blocks Y,U,V,Y2 */ DECLARE_ALIGNED(16, short, coeff[400]); /* 25 blocks Y,U,V,Y2 */ DECLARE_ALIGNED(16, unsigned char, thismb[256]); unsigned char *thismb_ptr; /* 16 Y, 4 U, 4 V, 1 DC 2nd order block */ BLOCK block[25]; YV12_BUFFER_CONFIG src; MACROBLOCKD e_mbd; PARTITION_INFO *partition_info; /* work pointer */ PARTITION_INFO *pi; /* Corresponds to upper left visible macroblock */ PARTITION_INFO *pip; /* Base of allocated array */ int ref_frame_cost[MAX_REF_FRAMES]; search_site *ss; int ss_count; int searches_per_step; int errorperbit; int sadperbit16; int sadperbit4; int rddiv; int rdmult; unsigned int *mb_activity_ptr; int *mb_norm_activity_ptr; signed int act_zbin_adj; signed int last_act_zbin_adj; int *mvcost[2]; int *mvsadcost[2]; int (*mbmode_cost)[MB_MODE_COUNT]; int (*intra_uv_mode_cost)[MB_MODE_COUNT]; int (*bmode_costs)[10][10]; int *inter_bmode_costs; int (*token_costs)[COEF_BANDS][PREV_COEF_CONTEXTS][MAX_ENTROPY_TOKENS]; /* These define limits to motion vector components to prevent * them from extending outside the UMV borders. */ int mv_col_min; int mv_col_max; int mv_row_min; int mv_row_max; int skip; unsigned int encode_breakout; signed char *gf_active_ptr; unsigned char *active_ptr; MV_CONTEXT *mvc; int optimize; int q_index; int is_skin; int denoise_zeromv; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 125 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" int increase_denoising; MB_PREDICTION_MODE best_sse_inter_mode; int_mv best_sse_mv; MV_REFERENCE_FRAME best_reference_frame; MV_REFERENCE_FRAME best_zeromv_reference_frame; unsigned char need_to_clamp_best_mvs; #endif # 132 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" int skip_true_count; unsigned int coef_counts[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; unsigned int MVcount[2][MVvals]; /* (row,col) MV cts this frame */ int ymode_count[VP8_YMODES]; /* intra MB type cts this frame */ int uv_mode_count[VP8_UV_MODES]; /* intra MB type cts this frame */ int64_t prediction_error; int64_t intra_error; int count_mb_ref_frame_usage[MAX_REF_FRAMES]; int rd_thresh_mult[MAX_MODES]; int rd_threshes[MAX_MODES]; unsigned int mbs_tested_so_far; unsigned int mode_test_hit_counts[MAX_MODES]; int zbin_mode_boost_enabled; int zbin_mode_boost; int last_zbin_mode_boost; int last_zbin_over_quant; int zbin_over_quant; int error_bins[MAX_ERROR_BINS]; void (*short_fdct4x4)(short *input, short *output, int pitch); void (*short_fdct8x4)(short *input, short *output, int pitch); void (*short_walsh4x4)(short *input, short *output, int pitch); void (*quantize_b)(BLOCK *b, BLOCKD *d); unsigned int mbs_zero_last_dot_suppress; int zero_last_dot_suppress; } MACROBLOCK; #ifdef __cplusplus } // extern "C" #endif # 167 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" #endif // VPX_VP8_ENCODER_BLOCK_H_ # 169 "../../third_party/libvpx/source/libvpx/vp8/encoder/block.h" #endif /* block.h expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h" 2 #ifdef __cplusplus extern "C" { #endif # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h" typedef struct { short Token; short Extra; } TOKENVALUE; typedef struct { const vp8_prob *context_tree; short Extra; unsigned char Token; unsigned char skip_eob_node; } TOKENEXTRA; int rd_cost_mby(MACROBLOCKD *); extern const short *const vp8_dct_value_cost_ptr; /* TODO: The Token field should be broken out into a separate char array to * improve cache locality, since it's needed for costing when the rest of the * fields are not. */ extern const TOKENVALUE *const vp8_dct_value_tokens_ptr; #ifdef __cplusplus } // extern "C" #endif # 45 "../../third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h" #endif // VPX_VP8_ENCODER_TOKENIZE_H_ # 47 "../../third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h" #endif /* tokenize.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h" 2 #ifdef __cplusplus extern "C" { #endif # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h" struct VP8_COMP; struct macroblock; void vp8_activity_masking(struct VP8_COMP *cpi, MACROBLOCK *x); void vp8_build_block_offsets(struct macroblock *x); void vp8_setup_block_ptrs(struct macroblock *x); void vp8_encode_frame(struct VP8_COMP *cpi); int vp8cx_encode_inter_macroblock(struct VP8_COMP *cpi, struct macroblock *x, TOKENEXTRA **t, int recon_yoffset, int recon_uvoffset, int mb_row, int mb_col); int vp8cx_encode_intra_macroblock(struct VP8_COMP *cpi, struct macroblock *x, TOKENEXTRA **t); #ifdef __cplusplus } // extern "C" #endif # 39 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h" #endif // VPX_VP8_ENCODER_ENCODEFRAME_H_ # 41 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h" #endif /* encodeframe.h expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if 0 /* expanded by -frewrite-includes */ #include "tokenize.h" #endif /* expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 21 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if defined(__CLANG_REWRITTEN_INCLUDES) /* treewriter.h expanded by -frewrite-includes */ #include "treewriter.h" #else /* treewriter.h expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_TREEWRITER_H_ #define VPX_VP8_ENCODER_TREEWRITER_H_ /* Trees map alphabets into huffman-like codes suitable for an arithmetic bit coder. Timothy S Murphy 11 October 2004 */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/treecoder.h" #endif /* expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" # 21 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* boolhuff.h expanded by -frewrite-includes */ #include "boolhuff.h" /* for now */ #else /* boolhuff.h expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /**************************************************************************** * * Module Title : boolhuff.h * * Description : Bool Coder header file. * ****************************************************************************/ #ifndef VPX_VP8_ENCODER_BOOLHUFF_H_ #define VPX_VP8_ENCODER_BOOLHUFF_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/mem.h" #endif /* expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h" # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/internal/vpx_codec_internal.h" #endif /* expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h" # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h" #ifdef __cplusplus extern "C" { #endif # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h" typedef struct { unsigned int lowvalue; unsigned int range; int count; unsigned int pos; unsigned char *buffer; unsigned char *buffer_end; struct vpx_internal_error_info *error; } BOOL_CODER; void vp8_start_encode(BOOL_CODER *bc, unsigned char *source, unsigned char *source_end); void vp8_encode_value(BOOL_CODER *bc, int data, int bits); void vp8_stop_encode(BOOL_CODER *bc); extern const unsigned int vp8_prob_cost[256]; DECLARE_ALIGNED(16, extern const unsigned char, vp8_norm[256]); static int validate_buffer(const unsigned char *start, size_t len, const unsigned char *end, struct vpx_internal_error_info *error) { if (start + len > start && start + len < end) { return 1; } else { vpx_internal_error(error, VPX_CODEC_CORRUPT_FRAME, "Truncated packet or corrupt partition "); } return 0; } static void vp8_encode_bool(BOOL_CODER *bc, int bit, int probability) { unsigned int split; int count = bc->count; unsigned int range = bc->range; unsigned int lowvalue = bc->lowvalue; int shift; split = 1 + (((range - 1) * probability) >> 8); range = split; if (bit) { lowvalue += split; range = bc->range - split; } shift = vp8_norm[range]; range <<= shift; count += shift; if (count >= 0) { int offset = shift - count; if ((lowvalue << (offset - 1)) & 0x80000000) { int x = bc->pos - 1; while (x >= 0 && bc->buffer[x] == 0xff) { bc->buffer[x] = (unsigned char)0; x--; } bc->buffer[x] += 1; } validate_buffer(bc->buffer + bc->pos, 1, bc->buffer_end, bc->error); bc->buffer[bc->pos++] = (lowvalue >> (24 - offset) & 0xff); shift = count; lowvalue = (int)(((uint64_t)lowvalue << offset) & 0xffffff); count -= 8; } lowvalue <<= shift; bc->count = count; bc->lowvalue = lowvalue; bc->range = range; } #ifdef __cplusplus } // extern "C" #endif # 111 "../../third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h" #endif // VPX_VP8_ENCODER_BOOLHUFF_H_ # 113 "../../third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h" #endif /* boolhuff.h expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" 2 #ifdef __cplusplus extern "C" { #endif # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" typedef BOOL_CODER vp8_writer; #define vp8_write vp8_encode_bool #define vp8_write_literal vp8_encode_value #define vp8_write_bit(W, V) vp8_write(W, V, vp8_prob_half) #define vp8bc_write vp8bc_write_bool #define vp8bc_write_literal vp8bc_write_bits #define vp8bc_write_bit(W, V) vp8bc_write_bits(W, V, 1) /* Approximate length of an encoded bool in 256ths of a bit at given prob */ #define vp8_cost_zero(x) (vp8_prob_cost[x]) #define vp8_cost_one(x) vp8_cost_zero(vp8_complement(x)) #define vp8_cost_bit(x, b) vp8_cost_zero((b) ? vp8_complement(x) : (x)) /* VP8BC version is scaled by 2^20 rather than 2^8; see bool_coder.h */ /* Both of these return bits, not scaled bits. */ static INLINE unsigned int vp8_cost_branch(const unsigned int ct[2], vp8_prob p) { /* Imitate existing calculation */ return (unsigned int)(((((uint64_t)ct[0]) * vp8_cost_zero(p)) + (((uint64_t)ct[1]) * vp8_cost_one(p))) >> 8); } /* Small functions to write explicit values and tokens, as well as estimate their lengths. */ static void vp8_treed_write(vp8_writer *const w, vp8_tree t, const vp8_prob *const p, int v, int n) { /* number of bits in v, assumed nonzero */ vp8_tree_index i = 0; do { const int b = (v >> --n) & 1; vp8_write(w, b, p[i >> 1]); i = t[i + b]; } while (n); } static INLINE void vp8_write_token(vp8_writer *const w, vp8_tree t, const vp8_prob *const p, vp8_token *const x) { vp8_treed_write(w, t, p, x->value, x->Len); } static int vp8_treed_cost(vp8_tree t, const vp8_prob *const p, int v, int n) { /* number of bits in v, assumed nonzero */ int c = 0; vp8_tree_index i = 0; do { const int b = (v >> --n) & 1; c += vp8_cost_bit(p[i >> 1], b); i = t[i + b]; } while (n); return c; } static INLINE int vp8_cost_token(vp8_tree t, const vp8_prob *const p, vp8_token *const x) { return vp8_treed_cost(t, p, x->value, x->Len); } /* Fill array of costs for all possible token values. */ void vp8_cost_tokens(int *c, const vp8_prob *, vp8_tree); void vp8_cost_tokens2(int *c, const vp8_prob *, vp8_tree, int); #ifdef __cplusplus } // extern "C" #endif # 105 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" #endif // VPX_VP8_ENCODER_TREEWRITER_H_ # 107 "../../third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h" #endif /* treewriter.h expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* onyx_int.h expanded by -frewrite-includes */ #include "onyx_int.h" #else /* onyx_int.h expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_ONYX_INT_H_ #define VPX_VP8_ENCODER_ONYX_INT_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 1 3 4 /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /** * @file assert.h * @brief Assertions. * * There's no include guard in this file because may usefully be * included multiple times, with and without NDEBUG defined. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #undef assert #undef __assert_no_op /** Internal implementation detail. Do not use. */ #define __assert_no_op __BIONIC_CAST(static_cast, void, 0) #ifdef NDEBUG # define assert(e) __assert_no_op #else # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined(__cplusplus) || __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e)) # else # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /** * assert() aborts the program after logging an error message, if the * expression evaluates to false. * * On Android, the error goes to both stderr and logcat. */ # define assert(e) ((e) ? __assert_no_op : __assert(__FILE__, __LINE__, #e)) # endif # 65 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #endif # 66 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /* `static_assert` is a keyword in C++11 and C23; C11 had `_Static_assert` instead. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) && (__STDC_VERSION__ >= 201112L && __STDC_VERSION__ < 202311L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 72 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 __BEGIN_DECLS /** * __assert() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert(const char* _Nonnull __file, int __line, const char* _Nonnull __msg) __noreturn; /** * __assert2() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert2(const char* _Nonnull __file, int __line, const char* _Nonnull __function, const char* _Nonnull __msg) __noreturn; __END_DECLS #endif /* assert.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/onyx.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "treewriter.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "tokenize.h" #endif /* expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 21 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* onyxc_int.h expanded by -frewrite-includes */ #include "vp8/common/onyxc_int.h" #else /* onyxc_int.h expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_ONYXC_INT_H_ #define VPX_VP8_COMMON_ONYXC_INT_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8_rtcd.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/internal/vpx_codec_internal.h" #endif /* expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 17 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* loopfilter.h expanded by -frewrite-includes */ #include "loopfilter.h" #else /* loopfilter.h expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_LOOPFILTER_H_ #define VPX_VP8_COMMON_LOOPFILTER_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/mem.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8_rtcd.h" #endif /* expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" # 17 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" #ifdef __cplusplus extern "C" { #endif # 21 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" #define MAX_LOOP_FILTER 63 /* fraction of total macroblock rows to be used in fast filter level picking */ /* has to be > 2 */ #define PARTIAL_FRAME_FRACTION 8 typedef enum { NORMAL_LOOPFILTER = 0, SIMPLE_LOOPFILTER = 1 } LOOPFILTERTYPE; #if 0 /* disabled by -frewrite-includes */ #if VPX_ARCH_ARM #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" #define SIMD_WIDTH 1 #else # 32 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" #define SIMD_WIDTH 16 #endif # 34 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" /* Need to align this structure so when it is declared and * passed it can be loaded into vector registers. */ typedef struct { DECLARE_ALIGNED(SIMD_WIDTH, unsigned char, mblim[MAX_LOOP_FILTER + 1][SIMD_WIDTH]); DECLARE_ALIGNED(SIMD_WIDTH, unsigned char, blim[MAX_LOOP_FILTER + 1][SIMD_WIDTH]); DECLARE_ALIGNED(SIMD_WIDTH, unsigned char, lim[MAX_LOOP_FILTER + 1][SIMD_WIDTH]); DECLARE_ALIGNED(SIMD_WIDTH, unsigned char, hev_thr[4][SIMD_WIDTH]); unsigned char lvl[4][4][4]; unsigned char hev_thr_lut[2][MAX_LOOP_FILTER + 1]; unsigned char mode_lf_lut[10]; } loop_filter_info_n; typedef struct loop_filter_info { const unsigned char *mblim; const unsigned char *blim; const unsigned char *lim; const unsigned char *hev_thr; } loop_filter_info; typedef void loop_filter_uvfunction(unsigned char *u, /* source pointer */ int p, /* pitch */ const unsigned char *blimit, const unsigned char *limit, const unsigned char *thresh, unsigned char *v); /* assorted loopfilter functions which get used elsewhere */ struct VP8Common; struct macroblockd; struct modeinfo; void vp8_loop_filter_init(struct VP8Common *cm); void vp8_loop_filter_frame_init(struct VP8Common *cm, struct macroblockd *mbd, int default_filt_lvl); void vp8_loop_filter_frame(struct VP8Common *cm, struct macroblockd *mbd, int frame_type); void vp8_loop_filter_partial_frame(struct VP8Common *cm, struct macroblockd *mbd, int default_filt_lvl); void vp8_loop_filter_frame_yonly(struct VP8Common *cm, struct macroblockd *mbd, int default_filt_lvl); void vp8_loop_filter_update_sharpness(loop_filter_info_n *lfi, int sharpness_lvl); void vp8_loop_filter_row_normal(struct VP8Common *cm, struct modeinfo *mode_info_context, int mb_row, int post_ystride, int post_uvstride, unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr); void vp8_loop_filter_row_simple(struct VP8Common *cm, struct modeinfo *mode_info_context, int mb_row, int post_ystride, unsigned char *y_ptr); #ifdef __cplusplus } // extern "C" #endif # 100 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" #endif // VPX_VP8_COMMON_LOOPFILTER_H_ # 102 "../../third_party/libvpx/source/libvpx/vp8/common/loopfilter.h" #endif /* loopfilter.h expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "entropymv.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 19 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "entropy.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 20 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_POSTPROC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* postproc.h expanded by -frewrite-includes */ #include "postproc.h" #else /* postproc.h expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_POSTPROC_H_ #define VPX_VP8_COMMON_POSTPROC_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/mem.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" struct postproc_state { int last_q; int last_noise; int last_base_qindex; int last_frame_valid; int clamp; int8_t *generated_noise; }; #if defined(__CLANG_REWRITTEN_INCLUDES) /* onyxc_int.h expanded by -frewrite-includes */ #include "onyxc_int.h" #else /* onyxc_int.h expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_ONYXC_INT_H_ #define VPX_VP8_COMMON_ONYXC_INT_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8_rtcd.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/internal/vpx_codec_internal.h" #endif /* expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 17 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "loopfilter.h" #endif /* expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 18 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "entropymv.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 19 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "entropy.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 20 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_POSTPROC #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* expanded by -frewrite-includes */ #include "postproc.h" #endif /* expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 22 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #endif # 23 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" /*#ifdef PACKET_TESTING*/ #if 0 /* expanded by -frewrite-includes */ #include "header.h" #endif /* expanded by -frewrite-includes */ # 25 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 26 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" /*#endif*/ #ifdef __cplusplus extern "C" { #endif # 31 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #define MINQ 0 #define MAXQ 127 #define QINDEX_RANGE (MAXQ + 1) #define NUM_YV12_BUFFERS 4 #define MAX_PARTITIONS 9 typedef struct frame_contexts { vp8_prob bmode_prob[VP8_BINTRAMODES - 1]; vp8_prob ymode_prob[VP8_YMODES - 1]; /* interframe intra mode probs */ vp8_prob uv_mode_prob[VP8_UV_MODES - 1]; vp8_prob sub_mv_ref_prob[VP8_SUBMVREFS - 1]; vp8_prob coef_probs[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [ENTROPY_NODES]; MV_CONTEXT mvc[2]; } FRAME_CONTEXT; typedef enum { ONE_PARTITION = 0, TWO_PARTITION = 1, FOUR_PARTITION = 2, EIGHT_PARTITION = 3 } TOKEN_PARTITION; typedef enum { RECON_CLAMP_REQUIRED = 0, RECON_CLAMP_NOTREQUIRED = 1 } CLAMP_TYPE; typedef struct VP8Common { struct vpx_internal_error_info error; DECLARE_ALIGNED(16, short, Y1dequant[QINDEX_RANGE][2]); DECLARE_ALIGNED(16, short, Y2dequant[QINDEX_RANGE][2]); DECLARE_ALIGNED(16, short, UVdequant[QINDEX_RANGE][2]); int Width; int Height; int horiz_scale; int vert_scale; CLAMP_TYPE clamp_type; YV12_BUFFER_CONFIG *frame_to_show; YV12_BUFFER_CONFIG yv12_fb[NUM_YV12_BUFFERS]; int fb_idx_ref_cnt[NUM_YV12_BUFFERS]; int new_fb_idx, lst_fb_idx, gld_fb_idx, alt_fb_idx; YV12_BUFFER_CONFIG temp_scale_frame; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_POSTPROC #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 85 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" YV12_BUFFER_CONFIG post_proc_buffer; YV12_BUFFER_CONFIG post_proc_buffer_int; int post_proc_buffer_int_used; unsigned char *pp_limits_buffer; /* post-processing filter coefficients */ #endif # 90 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" FRAME_TYPE last_frame_type; /* Save last frame's frame type for motion search. */ FRAME_TYPE frame_type; int show_frame; int frame_flags; int MBs; int mb_rows; int mb_cols; int mode_info_stride; /* profile settings */ int mb_no_coeff_skip; int no_lpf; int use_bilinear_mc_filter; int full_pixel; int base_qindex; int y1dc_delta_q; int y2dc_delta_q; int y2ac_delta_q; int uvdc_delta_q; int uvac_delta_q; /* We allocate a MODE_INFO struct for each macroblock, together with an extra row on top and column on the left to simplify prediction. */ MODE_INFO *mip; /* Base of allocated array */ MODE_INFO *mi; /* Corresponds to upper left visible macroblock */ #if 0 /* disabled by -frewrite-includes */ #if CONFIG_ERROR_CONCEALMENT #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" MODE_INFO *prev_mip; /* MODE_INFO array 'mip' from last decoded frame */ MODE_INFO *prev_mi; /* 'mi' from last frame (points into prev_mip) */ #endif # 126 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" /* MODE_INFO for the last decoded frame to show */ MODE_INFO *show_frame_mi; LOOPFILTERTYPE filter_type; loop_filter_info_n lf_info; int filter_level; int last_sharpness_level; int sharpness_level; int refresh_last_frame; /* Two state 0 = NO, 1 = YES */ int refresh_golden_frame; /* Two state 0 = NO, 1 = YES */ int refresh_alt_ref_frame; /* Two state 0 = NO, 1 = YES */ int copy_buffer_to_gf; /* 0 none, 1 Last to GF, 2 ARF to GF */ int copy_buffer_to_arf; /* 0 none, 1 Last to ARF, 2 GF to ARF */ int refresh_entropy_probs; /* Two state 0 = NO, 1 = YES */ int ref_frame_sign_bias[MAX_REF_FRAMES]; /* Two state 0, 1 */ /* Y,U,V,Y2 */ ENTROPY_CONTEXT_PLANES *above_context; /* row of context for each plane */ ENTROPY_CONTEXT_PLANES left_context; /* (up to) 4 contexts "" */ FRAME_CONTEXT lfc; /* last frame entropy */ FRAME_CONTEXT fc; /* this frame entropy */ unsigned int current_video_frame; int version; TOKEN_PARTITION multi_token_partition; #ifdef PACKET_TESTING VP8_HEADER oh; #endif # 163 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTITHREAD #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 165 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" int processor_core_count; #endif # 167 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_POSTPROC #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 168 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" struct postproc_state postproc_state; #endif # 170 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" } VP8_COMMON; #ifdef __cplusplus } // extern "C" #endif # 175 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #endif // VPX_VP8_COMMON_ONYXC_INT_H_ # 177 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #endif /* onyxc_int.h expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "ppflags.h" #endif /* expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" # 25 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" #ifdef __cplusplus extern "C" { #endif # 29 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" int vp8_post_proc_frame(struct VP8Common *oci, YV12_BUFFER_CONFIG *dest, vp8_ppflags_t *ppflags); void vp8_de_noise(struct VP8Common *cm, YV12_BUFFER_CONFIG *source, int q, int uvfilter); void vp8_deblock(struct VP8Common *cm, YV12_BUFFER_CONFIG *source, YV12_BUFFER_CONFIG *post, int q); #define MFQE_PRECISION 4 void vp8_multiframe_quality_enhance(struct VP8Common *cm); #ifdef __cplusplus } // extern "C" #endif # 44 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" #endif // VPX_VP8_COMMON_POSTPROC_H_ # 46 "../../third_party/libvpx/source/libvpx/vp8/common/postproc.h" #endif /* postproc.h expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" 2 #endif # 23 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" /*#ifdef PACKET_TESTING*/ #if defined(__CLANG_REWRITTEN_INCLUDES) /* header.h expanded by -frewrite-includes */ #include "header.h" #else /* header.h expanded by -frewrite-includes */ # 25 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/header.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_HEADER_H_ #define VPX_VP8_COMMON_HEADER_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vp8/common/header.h" /* 24 bits total */ typedef struct { unsigned int type : 1; unsigned int version : 3; unsigned int show_frame : 1; /* Allow 2^20 bytes = 8 megabits for first partition */ unsigned int first_partition_length_in_bytes : 19; #ifdef PACKET_TESTING unsigned int frame_number; unsigned int update_gold : 1; unsigned int uses_gold : 1; unsigned int update_last : 1; unsigned int uses_last : 1; #endif # 35 "../../third_party/libvpx/source/libvpx/vp8/common/header.h" } VP8_HEADER; #ifdef PACKET_TESTING #define VP8_HEADER_SIZE 8 #else # 41 "../../third_party/libvpx/source/libvpx/vp8/common/header.h" #define VP8_HEADER_SIZE 3 #endif # 43 "../../third_party/libvpx/source/libvpx/vp8/common/header.h" #ifdef __cplusplus } // extern "C" #endif # 47 "../../third_party/libvpx/source/libvpx/vp8/common/header.h" #endif // VPX_VP8_COMMON_HEADER_H_ # 49 "../../third_party/libvpx/source/libvpx/vp8/common/header.h" #endif /* header.h expanded by -frewrite-includes */ # 26 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" 2 /*#endif*/ #ifdef __cplusplus extern "C" { #endif # 31 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #define MINQ 0 #define MAXQ 127 #define QINDEX_RANGE (MAXQ + 1) #define NUM_YV12_BUFFERS 4 #define MAX_PARTITIONS 9 typedef struct frame_contexts { vp8_prob bmode_prob[VP8_BINTRAMODES - 1]; vp8_prob ymode_prob[VP8_YMODES - 1]; /* interframe intra mode probs */ vp8_prob uv_mode_prob[VP8_UV_MODES - 1]; vp8_prob sub_mv_ref_prob[VP8_SUBMVREFS - 1]; vp8_prob coef_probs[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [ENTROPY_NODES]; MV_CONTEXT mvc[2]; } FRAME_CONTEXT; typedef enum { ONE_PARTITION = 0, TWO_PARTITION = 1, FOUR_PARTITION = 2, EIGHT_PARTITION = 3 } TOKEN_PARTITION; typedef enum { RECON_CLAMP_REQUIRED = 0, RECON_CLAMP_NOTREQUIRED = 1 } CLAMP_TYPE; typedef struct VP8Common { struct vpx_internal_error_info error; DECLARE_ALIGNED(16, short, Y1dequant[QINDEX_RANGE][2]); DECLARE_ALIGNED(16, short, Y2dequant[QINDEX_RANGE][2]); DECLARE_ALIGNED(16, short, UVdequant[QINDEX_RANGE][2]); int Width; int Height; int horiz_scale; int vert_scale; CLAMP_TYPE clamp_type; YV12_BUFFER_CONFIG *frame_to_show; YV12_BUFFER_CONFIG yv12_fb[NUM_YV12_BUFFERS]; int fb_idx_ref_cnt[NUM_YV12_BUFFERS]; int new_fb_idx, lst_fb_idx, gld_fb_idx, alt_fb_idx; YV12_BUFFER_CONFIG temp_scale_frame; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_POSTPROC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 85 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" YV12_BUFFER_CONFIG post_proc_buffer; YV12_BUFFER_CONFIG post_proc_buffer_int; int post_proc_buffer_int_used; unsigned char *pp_limits_buffer; /* post-processing filter coefficients */ #endif # 90 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" FRAME_TYPE last_frame_type; /* Save last frame's frame type for motion search. */ FRAME_TYPE frame_type; int show_frame; int frame_flags; int MBs; int mb_rows; int mb_cols; int mode_info_stride; /* profile settings */ int mb_no_coeff_skip; int no_lpf; int use_bilinear_mc_filter; int full_pixel; int base_qindex; int y1dc_delta_q; int y2dc_delta_q; int y2ac_delta_q; int uvdc_delta_q; int uvac_delta_q; /* We allocate a MODE_INFO struct for each macroblock, together with an extra row on top and column on the left to simplify prediction. */ MODE_INFO *mip; /* Base of allocated array */ MODE_INFO *mi; /* Corresponds to upper left visible macroblock */ #if 0 /* disabled by -frewrite-includes */ #if CONFIG_ERROR_CONCEALMENT #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" MODE_INFO *prev_mip; /* MODE_INFO array 'mip' from last decoded frame */ MODE_INFO *prev_mi; /* 'mi' from last frame (points into prev_mip) */ #endif # 126 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" /* MODE_INFO for the last decoded frame to show */ MODE_INFO *show_frame_mi; LOOPFILTERTYPE filter_type; loop_filter_info_n lf_info; int filter_level; int last_sharpness_level; int sharpness_level; int refresh_last_frame; /* Two state 0 = NO, 1 = YES */ int refresh_golden_frame; /* Two state 0 = NO, 1 = YES */ int refresh_alt_ref_frame; /* Two state 0 = NO, 1 = YES */ int copy_buffer_to_gf; /* 0 none, 1 Last to GF, 2 ARF to GF */ int copy_buffer_to_arf; /* 0 none, 1 Last to ARF, 2 GF to ARF */ int refresh_entropy_probs; /* Two state 0 = NO, 1 = YES */ int ref_frame_sign_bias[MAX_REF_FRAMES]; /* Two state 0, 1 */ /* Y,U,V,Y2 */ ENTROPY_CONTEXT_PLANES *above_context; /* row of context for each plane */ ENTROPY_CONTEXT_PLANES left_context; /* (up to) 4 contexts "" */ FRAME_CONTEXT lfc; /* last frame entropy */ FRAME_CONTEXT fc; /* this frame entropy */ unsigned int current_video_frame; int version; TOKEN_PARTITION multi_token_partition; #ifdef PACKET_TESTING VP8_HEADER oh; #endif # 163 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTITHREAD #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 165 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" int processor_core_count; #endif # 167 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_POSTPROC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 168 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" struct postproc_state postproc_state; #endif # 170 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" } VP8_COMMON; #ifdef __cplusplus } // extern "C" #endif # 175 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #endif // VPX_VP8_COMMON_ONYXC_INT_H_ # 177 "../../third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h" #endif /* onyxc_int.h expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* variance.h expanded by -frewrite-includes */ #include "vpx_dsp/variance.h" #else /* variance.h expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" 1 /* * Copyright (c) 2015 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_DSP_VARIANCE_H_ #define VPX_VPX_DSP_VARIANCE_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" # 15 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" # 17 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" #ifdef __cplusplus extern "C" { #endif # 21 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" #define FILTER_BITS 7 #define FILTER_WEIGHT 128 typedef unsigned int (*vpx_sad_fn_t)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride); typedef unsigned int (*vpx_sad_avg_fn_t)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); typedef void (*vp8_copy32xn_fn_t)(const uint8_t *src_ptr, int src_stride, uint8_t *ref_ptr, int ref_stride, int n); typedef void (*vpx_sad_multi_fn_t)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); typedef void (*vpx_sad_multi_d_fn_t)(const uint8_t *src_ptr, int src_stride, const uint8_t *const b_array[], int ref_stride, unsigned int *sad_array); typedef unsigned int (*vpx_variance_fn_t)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); typedef unsigned int (*vpx_subpixvariance_fn_t)( const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); typedef unsigned int (*vpx_subp_avg_variance_fn_t)( const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); #if 0 /* disabled by -frewrite-includes */ #if CONFIG_VP8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 58 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" typedef struct variance_vtable { vpx_sad_fn_t sdf; vpx_variance_fn_t vf; vpx_subpixvariance_fn_t svf; vpx_sad_multi_d_fn_t sdx4df; #if 0 /* disabled by -frewrite-includes */ #if VPX_ARCH_X86 || VPX_ARCH_X86_64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 64 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" vp8_copy32xn_fn_t copymem; #endif # 66 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" } vp8_variance_fn_ptr_t; #endif // CONFIG_VP8 # 68 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_VP9 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 70 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" typedef struct vp9_variance_vtable { vpx_sad_fn_t sdf; // Same as normal sad, but downsample the rows by a factor of 2. vpx_sad_fn_t sdsf; vpx_sad_avg_fn_t sdaf; vpx_variance_fn_t vf; vpx_subpixvariance_fn_t svf; vpx_subp_avg_variance_fn_t svaf; vpx_sad_multi_d_fn_t sdx4df; // Same as sadx4, but downsample the rows by a factor of 2. vpx_sad_multi_d_fn_t sdsx4df; } vp9_variance_fn_ptr_t; #endif // CONFIG_VP9 # 83 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" #ifdef __cplusplus } // extern "C" #endif # 87 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" #endif // VPX_VPX_DSP_VARIANCE_H_ # 89 "../../third_party/libvpx/source/libvpx/vpx_dsp/variance.h" #endif /* variance.h expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_pthread.h expanded by -frewrite-includes */ #include "vpx_util/vpx_pthread.h" #else /* vpx_pthread.h expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" 1 // Copyright 2024 Google Inc. All Rights Reserved. // // Use of this source code is governed by a BSD-style license // that can be found in the COPYING file in the root of the source // tree. An additional intellectual property rights grant can be found // in the file PATENTS. All contributing project authors may // be found in the AUTHORS file in the root of the source tree. // ----------------------------------------------------------------------------- // // pthread.h wrapper #ifndef VPX_VPX_UTIL_VPX_PTHREAD_H_ #define VPX_VPX_UTIL_VPX_PTHREAD_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" # 16 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTITHREAD #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #ifdef __cplusplus extern "C" { #endif # 22 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !HAVE_PTHREAD_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" // Prevent leaking max/min macros. #undef NOMINMAX #define NOMINMAX #undef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #if 0 /* expanded by -frewrite-includes */ #include // NOLINT #endif /* expanded by -frewrite-includes */ # 29 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" # 30 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #if 0 /* expanded by -frewrite-includes */ #include // NOLINT #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" # 31 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #if 0 /* expanded by -frewrite-includes */ #include // NOLINT #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" # 32 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #if 0 /* expanded by -frewrite-includes */ #include // NOLINT #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" # 33 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" typedef HANDLE pthread_t; typedef CRITICAL_SECTION pthread_mutex_t; #if 0 /* disabled by -frewrite-includes */ #if _WIN32_WINNT < 0x0600 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 37 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #error _WIN32_WINNT must target Windows Vista / Server 2008 or newer. #endif # 39 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" typedef CONDITION_VARIABLE pthread_cond_t; #ifndef WINAPI_FAMILY_PARTITION #define WINAPI_PARTITION_DESKTOP 1 #define WINAPI_FAMILY_PARTITION(x) x #endif # 45 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #if 0 /* disabled by -frewrite-includes */ #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 47 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #define USE_CREATE_THREAD #endif # 49 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" //------------------------------------------------------------------------------ // simplistic pthread emulation layer // _beginthreadex requires __stdcall #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 56 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #define THREADFN __attribute__((force_align_arg_pointer)) unsigned int __stdcall #else # 58 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #define THREADFN unsigned int __stdcall #endif # 60 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #define THREAD_EXIT_SUCCESS 0 static INLINE int pthread_create(pthread_t *const thread, const void *attr, unsigned int(__stdcall *start)(void *), void *arg) { (void)attr; #ifdef USE_CREATE_THREAD *thread = CreateThread(NULL, /* lpThreadAttributes */ 0, /* dwStackSize */ start, arg, 0, /* dwStackSize */ NULL); /* lpThreadId */ #else # 72 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" *thread = (pthread_t)_beginthreadex(NULL, /* void *security */ 0, /* unsigned stack_size */ start, arg, 0, /* unsigned initflag */ NULL); /* unsigned *thrdaddr */ #endif # 77 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" if (*thread == NULL) return 1; SetThreadPriority(*thread, THREAD_PRIORITY_ABOVE_NORMAL); return 0; } static INLINE int pthread_join(pthread_t thread, void **value_ptr) { (void)value_ptr; return (WaitForSingleObjectEx(thread, INFINITE, FALSE /*bAlertable*/) != WAIT_OBJECT_0 || CloseHandle(thread) == 0); } // Mutex static INLINE int pthread_mutex_init(pthread_mutex_t *const mutex, void *mutexattr) { (void)mutexattr; InitializeCriticalSectionEx(mutex, 0 /*dwSpinCount*/, 0 /*Flags*/); return 0; } static INLINE int pthread_mutex_trylock(pthread_mutex_t *const mutex) { return TryEnterCriticalSection(mutex) ? 0 : EBUSY; } static INLINE int pthread_mutex_lock(pthread_mutex_t *const mutex) { EnterCriticalSection(mutex); return 0; } static INLINE int pthread_mutex_unlock(pthread_mutex_t *const mutex) { LeaveCriticalSection(mutex); return 0; } static INLINE int pthread_mutex_destroy(pthread_mutex_t *const mutex) { DeleteCriticalSection(mutex); return 0; } // Condition static INLINE int pthread_cond_destroy(pthread_cond_t *const condition) { (void)condition; return 0; } static INLINE int pthread_cond_init(pthread_cond_t *const condition, void *cond_attr) { (void)cond_attr; InitializeConditionVariable(condition); return 0; } static INLINE int pthread_cond_signal(pthread_cond_t *const condition) { WakeConditionVariable(condition); return 0; } static INLINE int pthread_cond_broadcast(pthread_cond_t *const condition) { WakeAllConditionVariable(condition); return 0; } static INLINE int pthread_cond_wait(pthread_cond_t *const condition, pthread_mutex_t *const mutex) { int ok; ok = SleepConditionVariableCS(condition, mutex, INFINITE); return !ok; } #else // _WIN32 # 146 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* pthread.h expanded by -frewrite-includes */ #include // NOLINT #else /* pthread.h expanded by -frewrite-includes */ # 146 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 /** * @file pthread.h * @brief POSIX threads. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* page_size.h expanded by -frewrite-includes */ #include #else /* page_size.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/page_size.h" 1 3 4 /* * Copyright (C) 2023 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/page_size.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/page_size.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/page_size.h" 3 4 __BEGIN_DECLS // PAGE_SIZE is going away in Android. Prefer getpagesize() instead. // // For more info, see https://developer.android.com/16kb-page-size. // // To restore the original behavior, use __BIONIC_DEPRECATED_PAGE_SIZE_MACRO. #if 0 /* disabled by -frewrite-includes */ #if (defined(__NDK_MAJOR__) && __NDK_MAJOR__ <= 27 && !defined(__BIONIC_NO_PAGE_SIZE_MACRO)) \ || defined(__BIONIC_DEPRECATED_PAGE_SIZE_MACRO) \ || defined(__arm__) \ || defined(__i386__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/page_size.h" 3 4 #define PAGE_SIZE 4096 #define PAGE_MASK (~(PAGE_SIZE - 1)) #endif # 48 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/page_size.h" 3 4 __END_DECLS #endif /* page_size.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sched.h expanded by -frewrite-includes */ #include #else /* sched.h expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 /** * @file sched.h * @brief Thread execution scheduling. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* timespec.h expanded by -frewrite-includes */ #include #else /* timespec.h expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/timespec.h" 1 3 4 /* * Copyright (C) 2014 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/timespec.h" 3 4 /** * @file bits/timespec.h * @brief The `timespec` struct. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/timespec.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/timespec.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/timespec.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/timespec.h" 3 4 /* * This file is used to include timespec definition without introducing the whole * , or . */ #ifndef _STRUCT_TIMESPEC #define _STRUCT_TIMESPEC /** Represents a time. */ struct timespec { /** Number of seconds. */ time_t tv_sec; /** Number of nanoseconds. Must be less than 1,000,000,000. */ long tv_nsec; }; #endif # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/timespec.h" 3 4 #endif /* timespec.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sched.h expanded by -frewrite-includes */ #include #else /* sched.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/sched.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_SCHED_H #define _UAPI_LINUX_SCHED_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/sched.h" 3 4 # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/sched.h" 3 4 #define CSIGNAL 0x000000ff #define CLONE_VM 0x00000100 #define CLONE_FS 0x00000200 #define CLONE_FILES 0x00000400 #define CLONE_SIGHAND 0x00000800 #define CLONE_PIDFD 0x00001000 #define CLONE_PTRACE 0x00002000 #define CLONE_VFORK 0x00004000 #define CLONE_PARENT 0x00008000 #define CLONE_THREAD 0x00010000 #define CLONE_NEWNS 0x00020000 #define CLONE_SYSVSEM 0x00040000 #define CLONE_SETTLS 0x00080000 #define CLONE_PARENT_SETTID 0x00100000 #define CLONE_CHILD_CLEARTID 0x00200000 #define CLONE_DETACHED 0x00400000 #define CLONE_UNTRACED 0x00800000 #define CLONE_CHILD_SETTID 0x01000000 #define CLONE_NEWCGROUP 0x02000000 #define CLONE_NEWUTS 0x04000000 #define CLONE_NEWIPC 0x08000000 #define CLONE_NEWUSER 0x10000000 #define CLONE_NEWPID 0x20000000 #define CLONE_NEWNET 0x40000000 #define CLONE_IO 0x80000000 #define CLONE_CLEAR_SIGHAND 0x100000000ULL #define CLONE_INTO_CGROUP 0x200000000ULL #define CLONE_NEWTIME 0x00000080 #ifndef __ASSEMBLY__ struct clone_args { __aligned_u64 flags; __aligned_u64 pidfd; __aligned_u64 child_tid; __aligned_u64 parent_tid; __aligned_u64 exit_signal; __aligned_u64 stack; __aligned_u64 stack_size; __aligned_u64 tls; __aligned_u64 set_tid; __aligned_u64 set_tid_size; __aligned_u64 cgroup; }; #endif # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/sched.h" 3 4 #define CLONE_ARGS_SIZE_VER0 64 #define CLONE_ARGS_SIZE_VER1 80 #define CLONE_ARGS_SIZE_VER2 88 #define SCHED_NORMAL 0 #define SCHED_FIFO 1 #define SCHED_RR 2 #define SCHED_BATCH 3 #define SCHED_IDLE 5 #define SCHED_DEADLINE 6 #define SCHED_RESET_ON_FORK 0x40000000 #define SCHED_FLAG_RESET_ON_FORK 0x01 #define SCHED_FLAG_RECLAIM 0x02 #define SCHED_FLAG_DL_OVERRUN 0x04 #define SCHED_FLAG_KEEP_POLICY 0x08 #define SCHED_FLAG_KEEP_PARAMS 0x10 #define SCHED_FLAG_UTIL_CLAMP_MIN 0x20 #define SCHED_FLAG_UTIL_CLAMP_MAX 0x40 #define SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS) #define SCHED_FLAG_UTIL_CLAMP (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX) #define SCHED_FLAG_ALL (SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_RECLAIM | SCHED_FLAG_DL_OVERRUN | SCHED_FLAG_KEEP_ALL | SCHED_FLAG_UTIL_CLAMP) #endif # 74 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/sched.h" 3 4 #endif /* sched.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 __BEGIN_DECLS /* * @def SCHED_NORMAL * The standard (as opposed to real-time) round-robin scheduling policy. * * (Linux's name for POSIX's SCHED_OTHER.) * * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html) */ /* * @def SCHED_FIFO * The real-time first-in/first-out scheduling policy. * * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html) */ /* * @def SCHED_RR * The real-time round-robin policy. (See also SCHED_NORMAL/SCHED_OTHER.) * * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html) */ /* * @def SCHED_BATCH * The batch scheduling policy. * * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html) */ /* * @def SCHED_IDLE * The low priority "only when otherwise idle" scheduling priority. * * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html) */ /* * @def SCHED_DEADLINE * The deadline scheduling policy. * * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html) */ /* * The standard (as opposed to real-time) round-robin scheduling policy. * * (POSIX's name for Linux's SCHED_NORMAL.) */ #define SCHED_OTHER SCHED_NORMAL /** * See sched_getparam()/sched_setparam() and * sched_getscheduler()/sched_setscheduler(). */ struct sched_param { int sched_priority; }; /** * [sched_setscheduler(2)](https://man7.org/linux/man-pages/man2/sched_setscheduler.2.html) * sets the scheduling policy and associated parameters for the given thread. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int sched_setscheduler(pid_t __pid, int __policy, const struct sched_param* _Nonnull __param); /** * [sched_getscheduler(2)](https://man7.org/linux/man-pages/man2/sched_getscheduler.2) * gets the scheduling policy for the given thread. * * Returns a non-negative thread policy on success and returns -1 and sets * `errno` on failure. */ int sched_getscheduler(pid_t __pid); /** * [sched_yield(2)](http://man7.org/linux/man-pages/man2/sched_yield.2.html) * voluntarily gives up using the CPU so that another thread can run. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int sched_yield(void); /** * [sched_get_priority_max(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_max.2.html) * gets the maximum priority value allowed for the given scheduling policy. * * Returns a priority on success and returns -1 and sets `errno` on failure. */ int sched_get_priority_max(int __policy); /** * [sched_get_priority_min(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_min.2.html) * gets the minimum priority value allowed for the given scheduling policy. * * Returns a priority on success and returns -1 and sets `errno` on failure. */ int sched_get_priority_min(int __policy); /** * [sched_setparam(2)](http://man7.org/linux/man-pages/man2/sched_setparam.2.html) * sets the scheduling parameters for the given thread. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int sched_setparam(pid_t __pid, const struct sched_param* _Nonnull __param); /** * [sched_getparam(2)](http://man7.org/linux/man-pages/man2/sched_getparam.2.html) * gets the scheduling parameters for the given thread. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int sched_getparam(pid_t __pid, struct sched_param* _Nonnull __param); /** * [sched_rr_get_interval(2)](http://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html) * queries the round-robin time quantum for the given thread. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int sched_rr_get_interval(pid_t __pid, struct timespec* _Nonnull __quantum); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 167 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 /** * [clone(2)](http://man7.org/linux/man-pages/man2/clone.2.html) * creates a new child process. * * Returns the pid of the child to the caller on success and * returns -1 and sets `errno` on failure. */ int clone(int (* __BIONIC_COMPLICATED_NULLNESS __fn)(void* __BIONIC_COMPLICATED_NULLNESS ), void* __BIONIC_COMPLICATED_NULLNESS __child_stack, int __flags, void* _Nullable __arg, ...); /** * [unshare(2)](http://man7.org/linux/man-pages/man2/unshare.2.html) * disassociates part of the caller's execution context. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int unshare(int __flags); /** * [setns(2)](http://man7.org/linux/man-pages/man2/setns.2.html) * reassociates a thread with a different namespace. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int setns(int __fd, int __ns_type); /** * [sched_getcpu(3)](http://man7.org/linux/man-pages/man3/sched_getcpu.3.html) * reports which CPU the caller is running on. * * Returns a non-negative CPU number on success and returns -1 and sets * `errno` on failure. */ int sched_getcpu(void); #ifdef __LP64__ #define CPU_SETSIZE 1024 #else # 205 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 #define CPU_SETSIZE 32 #endif # 207 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 #define __CPU_BITTYPE unsigned long int /* mandated by the kernel */ #define __CPU_BITS (8 * sizeof(__CPU_BITTYPE)) #define __CPU_ELT(x) ((x) / __CPU_BITS) #define __CPU_MASK(x) ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1))) /** * [cpu_set_t](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) is a * statically-sized CPU set. See `CPU_ALLOC` for dynamically-sized CPU sets. */ typedef struct { __CPU_BITTYPE __bits[ CPU_SETSIZE / __CPU_BITS ]; } cpu_set_t; /** * [sched_setaffinity(2)](http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html) * sets the CPU affinity mask for the given thread. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int sched_setaffinity(pid_t __pid, size_t __set_size, const cpu_set_t* _Nonnull __set); /** * [sched_getaffinity(2)](http://man7.org/linux/man-pages/man2/sched_getaffinity.2.html) * gets the CPU affinity mask for the given thread. * * Returns 0 on success and returns -1 and sets `errno` on failure. */ int sched_getaffinity(pid_t __pid, size_t __set_size, cpu_set_t* _Nonnull __set); /** * [CPU_ZERO](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all * bits in a static CPU set. */ #define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t), set) /** * [CPU_ZERO_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all * bits in a dynamic CPU set allocated by `CPU_ALLOC`. */ #define CPU_ZERO_S(setsize, set) __builtin_memset(set, 0, setsize) /** * [CPU_SET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one * bit in a static CPU set. */ #define CPU_SET(cpu, set) CPU_SET_S(cpu, sizeof(cpu_set_t), set) /** * [CPU_SET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one * bit in a dynamic CPU set allocated by `CPU_ALLOC`. */ #define CPU_SET_S(cpu, setsize, set) \ do { \ size_t __cpu = (cpu); \ if (__cpu < 8 * (setsize)) \ (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \ } while (0) /** * [CPU_CLR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one * bit in a static CPU set. */ #define CPU_CLR(cpu, set) CPU_CLR_S(cpu, sizeof(cpu_set_t), set) /** * [CPU_CLR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one * bit in a dynamic CPU set allocated by `CPU_ALLOC`. */ #define CPU_CLR_S(cpu, setsize, set) \ do { \ size_t __cpu = (cpu); \ if (__cpu < 8 * (setsize)) \ (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \ } while (0) /** * [CPU_ISSET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests * whether the given bit is set in a static CPU set. */ #define CPU_ISSET(cpu, set) CPU_ISSET_S(cpu, sizeof(cpu_set_t), set) /** * [CPU_ISSET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests * whether the given bit is set in a dynamic CPU set allocated by `CPU_ALLOC`. */ #define CPU_ISSET_S(cpu, setsize, set) \ (__extension__ ({ \ size_t __cpu = (cpu); \ (__cpu < 8 * (setsize)) \ ? ((set)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \ : 0; \ })) /** * [CPU_COUNT](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts * how many bits are set in a static CPU set. */ #define CPU_COUNT(set) CPU_COUNT_S(sizeof(cpu_set_t), set) /** * [CPU_COUNT_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts * how many bits are set in a dynamic CPU set allocated by `CPU_ALLOC`. */ #define CPU_COUNT_S(setsize, set) __sched_cpucount((setsize), (set)) int __sched_cpucount(size_t __set_size, const cpu_set_t* _Nonnull __set); /** * [CPU_EQUAL](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests * whether two static CPU sets have the same bits set and cleared as each other. */ #define CPU_EQUAL(set1, set2) CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2) /** * [CPU_EQUAL_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests * whether two dynamic CPU sets allocated by `CPU_ALLOC` have the same bits * set and cleared as each other. */ #define CPU_EQUAL_S(setsize, set1, set2) (__builtin_memcmp(set1, set2, setsize) == 0) /** * [CPU_AND](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two * static CPU sets. */ #define CPU_AND(dst, set1, set2) __CPU_OP(dst, set1, set2, &) /** * [CPU_AND_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two * dynamic CPU sets allocated by `CPU_ALLOC`. */ #define CPU_AND_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, &) /** * [CPU_OR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two * static CPU sets. */ #define CPU_OR(dst, set1, set2) __CPU_OP(dst, set1, set2, |) /** * [CPU_OR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two * dynamic CPU sets allocated by `CPU_ALLOC`. */ #define CPU_OR_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, |) /** * [CPU_XOR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) * exclusive-ors two static CPU sets. */ #define CPU_XOR(dst, set1, set2) __CPU_OP(dst, set1, set2, ^) /** * [CPU_XOR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) * exclusive-ors two dynamic CPU sets allocated by `CPU_ALLOC`. */ #define CPU_XOR_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, ^) #define __CPU_OP(dst, set1, set2, op) __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op) #define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \ do { \ cpu_set_t* __dst = (dstset); \ const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \ const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \ size_t __nn = 0, __nn_max = (setsize)/sizeof(__CPU_BITTYPE); \ for (; __nn < __nn_max; __nn++) \ (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \ } while (0) /** * [CPU_ALLOC_SIZE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) * returns the size of a CPU set large enough for CPUs in the range 0..count-1. */ #define CPU_ALLOC_SIZE(count) \ __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE) /** * [CPU_ALLOC](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) * allocates a CPU set large enough for CPUs in the range 0..count-1. */ #define CPU_ALLOC(count) __sched_cpualloc((count)) cpu_set_t* _Nullable __sched_cpualloc(size_t __count); /** * [CPU_FREE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) * deallocates a CPU set allocated by `CPU_ALLOC`. */ #define CPU_FREE(set) __sched_cpufree((set)) void __sched_cpufree(cpu_set_t* _Nonnull __set); #endif /* __USE_GNU */ # 388 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sched.h" 3 4 __END_DECLS #endif /* sched.h expanded by -frewrite-includes */ # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time.h expanded by -frewrite-includes */ #include #else /* time.h expanded by -frewrite-includes */ # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 /** * @file time.h * @brief Clock and timer functionality. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time.h expanded by -frewrite-includes */ #include #else /* time.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _SYS_TIME_H_ #define _SYS_TIME_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time.h expanded by -frewrite-includes */ #include #else /* time.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_TIME_H #define _UAPI_LINUX_TIME_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time_types.h expanded by -frewrite-includes */ #include #else /* time_types.h expanded by -frewrite-includes */ # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time_types.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_TIME_TYPES_H #define _UAPI_LINUX_TIME_TYPES_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time.h expanded by -frewrite-includes */ #include #else /* time.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time_types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_TIME_H #define _UAPI_LINUX_TIME_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 # 12 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 #ifndef _STRUCT_TIMESPEC #define _STRUCT_TIMESPEC #endif # 15 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 struct timeval { __kernel_old_time_t tv_sec; __kernel_suseconds_t tv_usec; }; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; #define ITIMER_REAL 0 #define ITIMER_VIRTUAL 1 #define ITIMER_PROF 2 #define CLOCK_REALTIME 0 #define CLOCK_MONOTONIC 1 #define CLOCK_PROCESS_CPUTIME_ID 2 #define CLOCK_THREAD_CPUTIME_ID 3 #define CLOCK_MONOTONIC_RAW 4 #define CLOCK_REALTIME_COARSE 5 #define CLOCK_MONOTONIC_COARSE 6 #define CLOCK_BOOTTIME 7 #define CLOCK_REALTIME_ALARM 8 #define CLOCK_BOOTTIME_ALARM 9 #define CLOCK_SGI_CYCLE 10 #define CLOCK_TAI 11 #define MAX_CLOCKS 16 #define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC) #define CLOCKS_MONO CLOCK_MONOTONIC #define TIMER_ABSTIME 0x01 #endif # 51 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 #endif /* time.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time_types.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time_types.h" 3 4 # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time_types.h" 3 4 struct __kernel_timespec { __kernel_time64_t tv_sec; long long tv_nsec; }; struct __kernel_itimerspec { struct __kernel_timespec it_interval; struct __kernel_timespec it_value; }; struct __kernel_old_timespec { __kernel_old_time_t tv_sec; long tv_nsec; }; struct __kernel_sock_timeval { __s64 tv_sec; __s64 tv_usec; }; #endif # 28 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time_types.h" 3 4 #endif /* time_types.h expanded by -frewrite-includes */ # 12 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 2 3 4 #ifndef _STRUCT_TIMESPEC #define _STRUCT_TIMESPEC #endif # 15 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 struct timeval { __kernel_old_time_t tv_sec; __kernel_suseconds_t tv_usec; }; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; #define ITIMER_REAL 0 #define ITIMER_VIRTUAL 1 #define ITIMER_PROF 2 #define CLOCK_REALTIME 0 #define CLOCK_MONOTONIC 1 #define CLOCK_PROCESS_CPUTIME_ID 2 #define CLOCK_THREAD_CPUTIME_ID 3 #define CLOCK_MONOTONIC_RAW 4 #define CLOCK_REALTIME_COARSE 5 #define CLOCK_MONOTONIC_COARSE 6 #define CLOCK_BOOTTIME 7 #define CLOCK_REALTIME_ALARM 8 #define CLOCK_BOOTTIME_ALARM 9 #define CLOCK_SGI_CYCLE 10 #define CLOCK_TAI 11 #define MAX_CLOCKS 16 #define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC) #define CLOCKS_MONO CLOCK_MONOTONIC #define TIMER_ABSTIME 0x01 #endif # 51 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/time.h" 3 4 #endif /* time.h expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 2 3 4 /* POSIX says gets you most of and may get you all of it. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* select.h expanded by -frewrite-includes */ #include #else /* select.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 /** * @file sys/select.h * @brief Wait for events on a set of file descriptors (but use instead). */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signal.h expanded by -frewrite-includes */ #include #else /* signal.h expanded by -frewrite-includes */ # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _SIGNAL_H_ #define _SIGNAL_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigcontext.h expanded by -frewrite-includes */ #include #else /* sigcontext.h expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/sigcontext.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _ASMARM_SIGCONTEXT_H #define _ASMARM_SIGCONTEXT_H struct sigcontext { unsigned long trap_no; unsigned long error_code; unsigned long oldmask; unsigned long arm_r0; unsigned long arm_r1; unsigned long arm_r2; unsigned long arm_r3; unsigned long arm_r4; unsigned long arm_r5; unsigned long arm_r6; unsigned long arm_r7; unsigned long arm_r8; unsigned long arm_r9; unsigned long arm_r10; unsigned long arm_fp; unsigned long arm_ip; unsigned long arm_sp; unsigned long arm_lr; unsigned long arm_pc; unsigned long arm_cpsr; unsigned long fault_address; }; #endif # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/sigcontext.h" 3 4 #endif /* sigcontext.h expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signal_types.h expanded by -frewrite-includes */ #include #else /* signal_types.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 1 3 4 /* * Copyright (C) 2018 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signal.h expanded by -frewrite-includes */ #include #else /* signal.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/signal.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_SIGNAL_H #define _UAPI_LINUX_SIGNAL_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signal.h expanded by -frewrite-includes */ #include #else /* signal.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/signal.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/signal.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_ASMARM_SIGNAL_H #define _UAPI_ASMARM_SIGNAL_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/signal.h" 3 4 # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/signal.h" 3 4 struct siginfo; #define _KERNEL_NSIG 32 typedef unsigned long sigset_t; #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGTRAP 5 #define SIGABRT 6 #define SIGIOT 6 #define SIGBUS 7 #define SIGFPE 8 #define SIGKILL 9 #define SIGUSR1 10 #define SIGSEGV 11 #define SIGUSR2 12 #define SIGPIPE 13 #define SIGALRM 14 #define SIGTERM 15 #define SIGSTKFLT 16 #define SIGCHLD 17 #define SIGCONT 18 #define SIGSTOP 19 #define SIGTSTP 20 #define SIGTTIN 21 #define SIGTTOU 22 #define SIGURG 23 #define SIGXCPU 24 #define SIGXFSZ 25 #define SIGVTALRM 26 #define SIGPROF 27 #define SIGWINCH 28 #define SIGIO 29 #define SIGPOLL SIGIO #define SIGPWR 30 #define SIGSYS 31 #define SIGUNUSED 31 #define __SIGRTMIN 32 #define __SIGRTMAX _KERNEL__NSIG #define SIGSWI 32 #define SA_THIRTYTWO 0x02000000 #define SA_RESTORER 0x04000000 #define MINSIGSTKSZ 2048 #define SIGSTKSZ 8192 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signal-defs.h expanded by -frewrite-includes */ #include #else /* signal-defs.h expanded by -frewrite-includes */ # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/signal.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef __ASM_GENERIC_SIGNAL_DEFS_H #define __ASM_GENERIC_SIGNAL_DEFS_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef SA_NOCLDSTOP #define SA_NOCLDSTOP 0x00000001 #endif # 13 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef SA_NOCLDWAIT #define SA_NOCLDWAIT 0x00000002 #endif # 16 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef SA_SIGINFO #define SA_SIGINFO 0x00000004 #endif # 19 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #define SA_UNSUPPORTED 0x00000400 #define SA_EXPOSE_TAGBITS 0x00000800 #ifndef SA_ONSTACK #define SA_ONSTACK 0x08000000 #endif # 24 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef SA_RESTART #define SA_RESTART 0x10000000 #endif # 27 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef SA_NODEFER #define SA_NODEFER 0x40000000 #endif # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef SA_RESETHAND #define SA_RESETHAND 0x80000000 #endif # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #ifndef SIG_BLOCK #define SIG_BLOCK 0 #endif # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef SIG_UNBLOCK #define SIG_UNBLOCK 1 #endif # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef SIG_SETMASK #define SIG_SETMASK 2 #endif # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #ifndef __ASSEMBLY__ typedef void __signalfn_t(int); typedef __signalfn_t * __sighandler_t; typedef void __restorefn_t(void); typedef __restorefn_t * __sigrestore_t; #define SIG_DFL (( __sighandler_t) 0) #define SIG_IGN (( __sighandler_t) 1) #define SIG_ERR (( __sighandler_t) - 1) #endif # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #endif # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/signal-defs.h" 3 4 #endif /* signal-defs.h expanded by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/signal.h" 2 3 4 struct __kernel_sigaction { union { __sighandler_t _sa_handler; void(* _sa_sigaction) (int, struct siginfo *, void *); } _u; sigset_t sa_mask; unsigned long sa_flags; void(* sa_restorer) (void); }; #define sa_handler _u._sa_handler #define sa_sigaction _u._sa_sigaction typedef struct sigaltstack { void * ss_sp; int ss_flags; __kernel_size_t ss_size; } stack_t; #endif # 72 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/signal.h" 3 4 #endif /* signal.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/signal.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* siginfo.h expanded by -frewrite-includes */ #include #else /* siginfo.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/signal.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/siginfo.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* siginfo.h expanded by -frewrite-includes */ #include #else /* siginfo.h expanded by -frewrite-includes */ # 7 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/siginfo.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_ASM_GENERIC_SIGINFO_H #define _UAPI_ASM_GENERIC_SIGINFO_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 typedef union sigval { int sival_int; void * sival_ptr; } sigval_t; #define SI_MAX_SIZE 128 #ifndef __ARCH_SI_BAND_T #define __ARCH_SI_BAND_T long #endif # 19 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 #ifndef __ARCH_SI_CLOCK_T #define __ARCH_SI_CLOCK_T __kernel_clock_t #endif # 22 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 #ifndef __ARCH_SI_ATTRIBUTES #define __ARCH_SI_ATTRIBUTES #endif # 25 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 union __sifields { struct { __kernel_pid_t _pid; __kernel_uid32_t _uid; } _kill; struct { __kernel_timer_t _tid; int _overrun; sigval_t _sigval; int _sys_private; } _timer; struct { __kernel_pid_t _pid; __kernel_uid32_t _uid; sigval_t _sigval; } _rt; struct { __kernel_pid_t _pid; __kernel_uid32_t _uid; int _status; __ARCH_SI_CLOCK_T _utime; __ARCH_SI_CLOCK_T _stime; } _sigchld; struct { void * _addr; #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *)) union { int _trapno; short _addr_lsb; struct { char _dummy_bnd[__ADDR_BND_PKEY_PAD]; void * _lower; void * _upper; } _addr_bnd; struct { char _dummy_pkey[__ADDR_BND_PKEY_PAD]; __u32 _pkey; } _addr_pkey; struct { unsigned long _data; __u32 _type; __u32 _flags; } _perf; }; } _sigfault; struct { __ARCH_SI_BAND_T _band; int _fd; } _sigpoll; struct { void * _call_addr; int _syscall; unsigned int _arch; } _sigsys; }; #ifndef __ARCH_HAS_SWAPPED_SIGINFO #define __SIGINFO struct { int si_signo; int si_errno; int si_code; union __sifields _sifields; \ } #else # 84 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 #define __SIGINFO struct { int si_signo; int si_code; int si_errno; union __sifields _sifields; \ } #endif # 87 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 typedef struct siginfo { union { __SIGINFO; int _si_pad[SI_MAX_SIZE / sizeof(int)]; }; } __ARCH_SI_ATTRIBUTES siginfo_t; #define si_pid _sifields._kill._pid #define si_uid _sifields._kill._uid #define si_tid _sifields._timer._tid #define si_overrun _sifields._timer._overrun #define si_sys_private _sifields._timer._sys_private #define si_status _sifields._sigchld._status #define si_utime _sifields._sigchld._utime #define si_stime _sifields._sigchld._stime #define si_value _sifields._rt._sigval #define si_int _sifields._rt._sigval.sival_int #define si_ptr _sifields._rt._sigval.sival_ptr #define si_addr _sifields._sigfault._addr #define si_trapno _sifields._sigfault._trapno #define si_addr_lsb _sifields._sigfault._addr_lsb #define si_lower _sifields._sigfault._addr_bnd._lower #define si_upper _sifields._sigfault._addr_bnd._upper #define si_pkey _sifields._sigfault._addr_pkey._pkey #define si_perf_data _sifields._sigfault._perf._data #define si_perf_type _sifields._sigfault._perf._type #define si_perf_flags _sifields._sigfault._perf._flags #define si_band _sifields._sigpoll._band #define si_fd _sifields._sigpoll._fd #define si_call_addr _sifields._sigsys._call_addr #define si_syscall _sifields._sigsys._syscall #define si_arch _sifields._sigsys._arch #define SI_USER 0 #define SI_KERNEL 0x80 #define SI_QUEUE - 1 #define SI_TIMER - 2 #define SI_MESGQ - 3 #define SI_ASYNCIO - 4 #define SI_SIGIO - 5 #define SI_TKILL - 6 #define SI_DETHREAD - 7 #define SI_ASYNCNL - 60 #define SI_FROMUSER(siptr) ((siptr)->si_code <= 0) #define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0) #define ILL_ILLOPC 1 #define ILL_ILLOPN 2 #define ILL_ILLADR 3 #define ILL_ILLTRP 4 #define ILL_PRVOPC 5 #define ILL_PRVREG 6 #define ILL_COPROC 7 #define ILL_BADSTK 8 #define ILL_BADIADDR 9 #define __ILL_BREAK 10 #define __ILL_BNDMOD 11 #define NSIGILL 11 #define FPE_INTDIV 1 #define FPE_INTOVF 2 #define FPE_FLTDIV 3 #define FPE_FLTOVF 4 #define FPE_FLTUND 5 #define FPE_FLTRES 6 #define FPE_FLTINV 7 #define FPE_FLTSUB 8 #define __FPE_DECOVF 9 #define __FPE_DECDIV 10 #define __FPE_DECERR 11 #define __FPE_INVASC 12 #define __FPE_INVDEC 13 #define FPE_FLTUNK 14 #define FPE_CONDTRAP 15 #define NSIGFPE 15 #define SEGV_MAPERR 1 #define SEGV_ACCERR 2 #define SEGV_BNDERR 3 #ifdef __ia64__ #define __SEGV_PSTKOVF 4 #else # 164 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 #define SEGV_PKUERR 4 #endif # 166 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 #define SEGV_ACCADI 5 #define SEGV_ADIDERR 6 #define SEGV_ADIPERR 7 #define SEGV_MTEAERR 8 #define SEGV_MTESERR 9 #define SEGV_CPERR 10 #define NSIGSEGV 10 #define BUS_ADRALN 1 #define BUS_ADRERR 2 #define BUS_OBJERR 3 #define BUS_MCEERR_AR 4 #define BUS_MCEERR_AO 5 #define NSIGBUS 5 #define TRAP_BRKPT 1 #define TRAP_TRACE 2 #define TRAP_BRANCH 3 #define TRAP_HWBKPT 4 #define TRAP_UNK 5 #define TRAP_PERF 6 #define NSIGTRAP 6 #define TRAP_PERF_FLAG_ASYNC (1u << 0) #define CLD_EXITED 1 #define CLD_KILLED 2 #define CLD_DUMPED 3 #define CLD_TRAPPED 4 #define CLD_STOPPED 5 #define CLD_CONTINUED 6 #define NSIGCHLD 6 #define POLL_IN 1 #define POLL_OUT 2 #define POLL_MSG 3 #define POLL_ERR 4 #define POLL_PRI 5 #define POLL_HUP 6 #define NSIGPOLL 6 #define SYS_SECCOMP 1 #define SYS_USER_DISPATCH 2 #define NSIGSYS 2 #define EMT_TAGOVF 1 #define NSIGEMT 1 #define SIGEV_SIGNAL 0 #define SIGEV_NONE 1 #define SIGEV_THREAD 2 #define SIGEV_THREAD_ID 4 #ifndef __ARCH_SIGEV_PREAMBLE_SIZE #define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t)) #endif # 213 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 #define SIGEV_MAX_SIZE 64 #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) / sizeof(int)) typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[SIGEV_PAD_SIZE]; int _tid; struct { void(* _function) (sigval_t); void * _attribute; } _sigev_thread; } _sigev_un; } sigevent_t; #define sigev_notify_function _sigev_un._sigev_thread._function #define sigev_notify_attributes _sigev_un._sigev_thread._attribute #define sigev_notify_thread_id _sigev_un._tid #endif # 232 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/siginfo.h" 3 4 #endif /* siginfo.h expanded by -frewrite-includes */ # 8 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/siginfo.h" 2 3 4 #endif /* siginfo.h expanded by -frewrite-includes */ # 11 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/signal.h" 2 3 4 #define SS_ONSTACK 1 #define SS_DISABLE 2 #define SS_AUTODISARM (1U << 31) #define SS_FLAG_BITS SS_AUTODISARM #endif # 16 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/signal.h" 3 4 #endif /* signal.h expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 /* The arm and x86 kernel header files don't define _NSIG. */ #ifndef _KERNEL__NSIG #define _KERNEL__NSIG 64 #endif # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 /* Userspace's NSIG is the kernel's _NSIG + 1. */ #define _NSIG (_KERNEL__NSIG + 1) #define NSIG _NSIG typedef int sig_atomic_t; typedef __sighandler_t sig_t; /* BSD compatibility. */ typedef __sighandler_t sighandler_t; /* glibc compatibility. */ /* sigset_t is already large enough on LP64, but LP32's sigset_t * is just `unsigned long`. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 typedef sigset_t sigset64_t; #else # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 typedef struct { unsigned long __bits[_KERNEL__NSIG/(8*sizeof(long))]; } sigset64_t; #endif # 59 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 /* The kernel's struct sigaction doesn't match the POSIX one. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 63 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 /* For 64-bit, that's the only problem, and we only need two structs * for source compatibility with 32-bit. */ #define __SIGACTION_BODY \ int sa_flags; \ union { \ sighandler_t sa_handler; \ void (*sa_sigaction)(int, struct siginfo*, void*); \ }; \ sigset_t sa_mask; \ void (*sa_restorer)(void); \ struct sigaction { __SIGACTION_BODY }; struct sigaction64 { __SIGACTION_BODY }; #undef __SIGACTION_BODY #else # 82 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 /* For 32-bit, Android's ABIs used a too-small sigset_t that doesn't * support RT signals, so we need two different structs. */ /* The arm32 kernel headers also pollute the namespace with these, * but our header scrubber doesn't know how to remove #defines. */ #undef sa_handler #undef sa_sigaction struct sigaction { union { sighandler_t sa_handler; void (*sa_sigaction)(int, struct siginfo*, void*); }; sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); }; struct sigaction64 { union { sighandler_t sa_handler; void (*sa_sigaction)(int, struct siginfo*, void*); }; int sa_flags; void (*sa_restorer)(void); sigset64_t sa_mask; }; #endif # 113 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/signal_types.h" 3 4 #endif /* signal_types.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* ucontext.h expanded by -frewrite-includes */ #include #else /* ucontext.h expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 1 3 4 /* * Copyright (C) 2014 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signal.h expanded by -frewrite-includes */ #include #else /* signal.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _SIGNAL_H_ #define _SIGNAL_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #define __BIONIC_HAVE_UCONTEXT_T __BEGIN_DECLS /* The kernel headers define SIG_DFL (0) and SIG_IGN (1) but not SIG_HOLD, since * SIG_HOLD is only used by the deprecated SysV signal API. */ #define SIG_HOLD __BIONIC_CAST(reinterpret_cast, sighandler_t, 2) /* We take a few real-time signals for ourselves. May as well use the same names as glibc. */ #define SIGRTMIN (__libc_current_sigrtmin()) #define SIGRTMAX (__libc_current_sigrtmax()) int __libc_current_sigrtmin(void); int __libc_current_sigrtmax(void); extern const char* _Nonnull const sys_siglist[_NSIG]; extern const char* _Nonnull const sys_signame[_NSIG]; /* BSD compatibility. */ #define si_timerid si_tid /* glibc compatibility. */ int sigaction(int __signal, const struct sigaction* _Nullable __new_action, struct sigaction* _Nullable __old_action); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 65 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigaction64(int __signal, const struct sigaction64* _Nullable __new_action, struct sigaction64* _Nullable __old_action) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 67 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int siginterrupt(int __signal, int __flag); sighandler_t _Nonnull signal(int __signal, sighandler_t _Nullable __handler); int sigaddset(sigset_t* _Nonnull __set, int __signal); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 75 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigaddset64(sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 77 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigdelset(sigset_t* _Nonnull __set, int __signal); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 81 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigdelset64(sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 83 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigemptyset(sigset_t* _Nonnull __set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 87 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigemptyset64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 89 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigfillset(sigset_t* _Nonnull __set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 93 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigfillset64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 95 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigismember(const sigset_t* _Nonnull __set, int __signal); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 99 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigismember64(const sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 101 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigpending(sigset_t* _Nonnull __set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 106 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigpending64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 108 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigprocmask(int __how, const sigset_t* _Nullable __new_set, sigset_t* _Nullable __old_set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 112 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigprocmask64(int __how, const sigset64_t* _Nullable __new_set, sigset64_t* _Nullable __old_set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 114 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigsuspend(const sigset_t* _Nonnull __mask); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigsuspend64(const sigset64_t* _Nonnull __mask) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 120 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigwait(const sigset_t* _Nonnull __set, int* _Nonnull __signal); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 124 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigwait64(const sigset64_t* _Nonnull __set, int* _Nonnull __signal) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 126 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 130 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sighold(int __signal) __attribute__((__deprecated__("use sigprocmask() or pthread_sigmask() instead"))) __INTRODUCED_IN(26); int sigignore(int __signal) __attribute__((__deprecated__("use sigaction() instead"))) __INTRODUCED_IN(26); int sigpause(int __signal) __attribute__((__deprecated__("use sigsuspend() instead"))) __INTRODUCED_IN(26); int sigrelse(int __signal) __attribute__((__deprecated__("use sigprocmask() or pthread_sigmask() instead"))) __INTRODUCED_IN(26); sighandler_t _Nonnull sigset(int __signal, sighandler_t _Nullable __handler) __attribute__((__deprecated__("use sigaction() instead"))) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 143 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int raise(int __signal); int kill(pid_t __pid, int __signal); int killpg(int __pgrp, int __signal); int tgkill(int __tgid, int __tid, int __signal); int sigaltstack(const stack_t* _Nullable __new_signal_stack, stack_t* _Nullable __old_signal_stack); void psiginfo(const siginfo_t* _Nonnull __info, const char* _Nullable __msg); void psignal(int __signal, const char* _Nullable __msg); int pthread_kill(pthread_t __pthread, int __signal); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 157 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 29 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 159 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int pthread_sigqueue(pthread_t __pthread, int __signal, const union sigval __value) __INTRODUCED_IN(29); #endif /* __ANDROID_API__ >= 29 */ # 161 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #endif # 163 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int pthread_sigmask(int __how, const sigset_t* _Nullable __new_set, sigset_t* _Nullable __old_set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 167 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int pthread_sigmask64(int __how, const sigset64_t* _Nullable __new_set, sigset64_t* _Nullable __old_set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 169 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 173 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigqueue(pid_t __pid, int __signal, const union sigval __value) __INTRODUCED_IN(23); int sigtimedwait(const sigset_t* _Nonnull __set, siginfo_t* _Nullable __info, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 176 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 179 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigtimedwait64(const sigset64_t* _Nonnull __set, siginfo_t* _Nullable __info, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 181 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 184 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigwaitinfo(const sigset_t* _Nonnull __set, siginfo_t* _Nullable __info) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 186 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 189 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigwaitinfo64(const sigset64_t* _Nonnull __set, siginfo_t* _Nullable __info) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 191 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 __END_DECLS #endif # 196 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #endif /* signal.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* user.h expanded by -frewrite-includes */ #include #else /* user.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 1 3 4 /* * Copyright (C) 2013 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include /* For size_t. */ #else /* stddef.h expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 4 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 4 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 __BEGIN_DECLS #if 0 /* disabled by -frewrite-includes */ #if defined(__i386__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 struct user_fpregs_struct { long cwd; long swd; long twd; long fip; long fcs; long foo; long fos; long st_space[20]; }; struct user_fpxregs_struct { unsigned short cwd; unsigned short swd; unsigned short twd; unsigned short fop; long fip; long fcs; long foo; long fos; long mxcsr; long reserved; long st_space[32]; long xmm_space[32]; long padding[56]; }; struct user_regs_struct { long ebx; long ecx; long edx; long esi; long edi; long ebp; long eax; long xds; long xes; long xfs; long xgs; long orig_eax; long eip; long xcs; long eflags; long esp; long xss; }; struct user { struct user_regs_struct regs; int u_fpvalid; struct user_fpregs_struct i387; unsigned long int u_tsize; unsigned long int u_dsize; unsigned long int u_ssize; unsigned long start_code; unsigned long start_stack; long int signal; int reserved; struct user_regs_struct* u_ar0; struct user_fpregs_struct* u_fpstate; unsigned long magic; char u_comm[32]; int u_debugreg[8]; }; #define UPAGES 1 #define HOST_TEXT_START_ADDR (u.start_code) #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * PAGE_SIZE) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 struct user_fpregs_struct { unsigned short cwd; unsigned short swd; unsigned short ftw; unsigned short fop; unsigned long rip; unsigned long rdp; unsigned int mxcsr; unsigned int mxcr_mask; unsigned int st_space[32]; unsigned int xmm_space[64]; unsigned int padding[24]; }; struct user_regs_struct { unsigned long r15; unsigned long r14; unsigned long r13; unsigned long r12; unsigned long rbp; unsigned long rbx; unsigned long r11; unsigned long r10; unsigned long r9; unsigned long r8; unsigned long rax; unsigned long rcx; unsigned long rdx; unsigned long rsi; unsigned long rdi; unsigned long orig_rax; unsigned long rip; unsigned long cs; unsigned long eflags; unsigned long rsp; unsigned long ss; unsigned long fs_base; unsigned long gs_base; unsigned long ds; unsigned long es; unsigned long fs; unsigned long gs; }; struct user { struct user_regs_struct regs; int u_fpvalid; int pad0; struct user_fpregs_struct i387; unsigned long int u_tsize; unsigned long int u_dsize; unsigned long int u_ssize; unsigned long start_code; unsigned long start_stack; long int signal; int reserved; int pad1; struct user_regs_struct* u_ar0; struct user_fpregs_struct* u_fpstate; unsigned long magic; char u_comm[32]; unsigned long u_debugreg[8]; unsigned long error_code; unsigned long fault_address; }; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__arm__) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 174 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 struct user_fpregs { struct fp_reg { unsigned int sign1:1; unsigned int unused:15; unsigned int sign2:1; unsigned int exponent:14; unsigned int j:1; unsigned int mantissa1:31; unsigned int mantissa0:32; } fpregs[8]; unsigned int fpsr:32; unsigned int fpcr:32; unsigned char ftype[8]; unsigned int init_flag; }; struct user_regs { unsigned long uregs[18]; }; struct user_vfp { unsigned long long fpregs[32]; unsigned long fpscr; }; struct user_vfp_exc { unsigned long fpexc; unsigned long fpinst; unsigned long fpinst2; }; struct user { struct user_regs regs; int u_fpvalid; unsigned long int u_tsize; unsigned long int u_dsize; unsigned long int u_ssize; unsigned long start_code; unsigned long start_stack; long int signal; int reserved; struct user_regs* u_ar0; unsigned long magic; char u_comm[32]; int u_debugreg[8]; struct user_fpregs u_fp; struct user_fpregs* u_fp0; }; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__aarch64__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 221 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 struct user_regs_struct { uint64_t regs[31]; uint64_t sp; uint64_t pc; uint64_t pstate; }; struct user_fpsimd_struct { __uint128_t vregs[32]; uint32_t fpsr; uint32_t fpcr; }; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__riscv) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 235 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 // This space deliberately left blank for now. // No other libcs have any riscv64-specific structs. #else # 240 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 #error "Unsupported architecture." #endif # 244 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/user.h" 3 4 __END_DECLS #endif /* user.h expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 2 3 4 __BEGIN_DECLS #if 0 /* disabled by -frewrite-includes */ #if defined(__arm__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 enum { REG_R0 = 0, #define REG_R0 REG_R0 REG_R1, #define REG_R1 REG_R1 REG_R2, #define REG_R2 REG_R2 REG_R3, #define REG_R3 REG_R3 REG_R4, #define REG_R4 REG_R4 REG_R5, #define REG_R5 REG_R5 REG_R6, #define REG_R6 REG_R6 REG_R7, #define REG_R7 REG_R7 REG_R8, #define REG_R8 REG_R8 REG_R9, #define REG_R9 REG_R9 REG_R10, #define REG_R10 REG_R10 REG_R11, #define REG_R11 REG_R11 REG_R12, #define REG_R12 REG_R12 REG_R13, #define REG_R13 REG_R13 REG_R14, #define REG_R14 REG_R14 REG_R15, #define REG_R15 REG_R15 }; #define NGREG 18 /* Like glibc. */ typedef int greg_t; typedef greg_t gregset_t[NGREG]; typedef struct user_fpregs fpregset_t; #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 81 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 # 82 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 typedef struct sigcontext mcontext_t; typedef struct ucontext { unsigned long uc_flags; struct ucontext* uc_link; stack_t uc_stack; mcontext_t uc_mcontext; union { struct { sigset_t uc_sigmask; /* Android has a wrong (smaller) sigset_t on ARM. */ uint32_t __padding_rt_sigset; }; sigset64_t uc_sigmask64; }; /* The kernel adds extra padding after uc_sigmask to match glibc sigset_t on ARM. */ char __padding[120]; unsigned long uc_regspace[128] __attribute__((__aligned__(8))); } ucontext_t; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__aarch64__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 103 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 #define NGREG 34 /* x0..x30 + sp + pc + pstate */ typedef unsigned long greg_t; typedef greg_t gregset_t[NGREG]; typedef struct user_fpsimd_struct fpregset_t; #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 109 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 # 110 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 typedef struct sigcontext mcontext_t; typedef struct ucontext { unsigned long uc_flags; struct ucontext *uc_link; stack_t uc_stack; union { sigset_t uc_sigmask; sigset64_t uc_sigmask64; }; /* The kernel adds extra padding after uc_sigmask to match glibc sigset_t on ARM64. */ char __padding[128 - sizeof(sigset_t)]; mcontext_t uc_mcontext; } ucontext_t; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__i386__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 126 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 enum { REG_GS = 0, #define REG_GS REG_GS REG_FS, #define REG_FS REG_FS REG_ES, #define REG_ES REG_ES REG_DS, #define REG_DS REG_DS REG_EDI, #define REG_EDI REG_EDI REG_ESI, #define REG_ESI REG_ESI REG_EBP, #define REG_EBP REG_EBP REG_ESP, #define REG_ESP REG_ESP REG_EBX, #define REG_EBX REG_EBX REG_EDX, #define REG_EDX REG_EDX REG_ECX, #define REG_ECX REG_ECX REG_EAX, #define REG_EAX REG_EAX REG_TRAPNO, #define REG_TRAPNO REG_TRAPNO REG_ERR, #define REG_ERR REG_ERR REG_EIP, #define REG_EIP REG_EIP REG_CS, #define REG_CS REG_CS REG_EFL, #define REG_EFL REG_EFL REG_UESP, #define REG_UESP REG_UESP REG_SS, #define REG_SS REG_SS NGREG #define NGREG NGREG }; typedef int greg_t; typedef greg_t gregset_t[NGREG]; struct _libc_fpreg { unsigned short significand[4]; unsigned short exponent; }; struct _libc_fpstate { unsigned long cw; unsigned long sw; unsigned long tag; unsigned long ipoff; unsigned long cssel; unsigned long dataoff; unsigned long datasel; struct _libc_fpreg _st[8]; unsigned long status; }; typedef struct _libc_fpstate* fpregset_t; typedef struct { gregset_t gregs; fpregset_t fpregs; unsigned long oldmask; unsigned long cr2; } mcontext_t; typedef struct ucontext { unsigned long uc_flags; struct ucontext* uc_link; stack_t uc_stack; mcontext_t uc_mcontext; union { struct { sigset_t uc_sigmask; /* Android has a wrong (smaller) sigset_t on x86. */ uint32_t __padding_rt_sigset; }; sigset64_t uc_sigmask64; }; struct _libc_fpstate __fpregs_mem; } ucontext_t; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 216 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 enum { REG_R8 = 0, #define REG_R8 REG_R8 REG_R9, #define REG_R9 REG_R9 REG_R10, #define REG_R10 REG_R10 REG_R11, #define REG_R11 REG_R11 REG_R12, #define REG_R12 REG_R12 REG_R13, #define REG_R13 REG_R13 REG_R14, #define REG_R14 REG_R14 REG_R15, #define REG_R15 REG_R15 REG_RDI, #define REG_RDI REG_RDI REG_RSI, #define REG_RSI REG_RSI REG_RBP, #define REG_RBP REG_RBP REG_RBX, #define REG_RBX REG_RBX REG_RDX, #define REG_RDX REG_RDX REG_RAX, #define REG_RAX REG_RAX REG_RCX, #define REG_RCX REG_RCX REG_RSP, #define REG_RSP REG_RSP REG_RIP, #define REG_RIP REG_RIP REG_EFL, #define REG_EFL REG_EFL REG_CSGSFS, #define REG_CSGSFS REG_CSGSFS REG_ERR, #define REG_ERR REG_ERR REG_TRAPNO, #define REG_TRAPNO REG_TRAPNO REG_OLDMASK, #define REG_OLDMASK REG_OLDMASK REG_CR2, #define REG_CR2 REG_CR2 NGREG #define NGREG NGREG }; typedef long greg_t; typedef greg_t gregset_t[NGREG]; struct _libc_fpxreg { unsigned short significand[4]; unsigned short exponent; unsigned short padding[3]; }; struct _libc_xmmreg { uint32_t element[4]; }; struct _libc_fpstate { uint16_t cwd; uint16_t swd; uint16_t ftw; uint16_t fop; uint64_t rip; uint64_t rdp; uint32_t mxcsr; uint32_t mxcr_mask; struct _libc_fpxreg _st[8]; struct _libc_xmmreg _xmm[16]; uint32_t padding[24]; }; typedef struct _libc_fpstate* fpregset_t; typedef struct { gregset_t gregs; fpregset_t fpregs; unsigned long __reserved1[8]; } mcontext_t; typedef struct ucontext { unsigned long uc_flags; struct ucontext* uc_link; stack_t uc_stack; mcontext_t uc_mcontext; union { sigset_t uc_sigmask; sigset64_t uc_sigmask64; }; struct _libc_fpstate __fpregs_mem; } ucontext_t; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__riscv) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 316 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 #define NGREG 32 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 320 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 enum { REG_PC = 0, #define REG_PC REG_PC REG_RA = 1, #define REG_RA REG_RA REG_SP = 2, #define REG_SP REG_SP REG_TP = 4, #define REG_TP REG_TP REG_S0 = 8, #define REG_S0 REG_S0 REG_A0 = 10, #define REG_A0 REG_A0 }; #endif // defined(__USE_GNU) # 337 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 typedef unsigned long __riscv_mc_gp_state[NGREG]; typedef unsigned long greg_t; typedef unsigned long gregset_t[NGREG]; typedef union __riscv_mc_fp_state fpregset_t; /* These match the kernel types but with different names. */ struct __riscv_mc_f_ext_state { uint32_t __f[32]; uint32_t __fcsr; }; struct __riscv_mc_d_ext_state { uint64_t __f[32]; uint32_t __fcsr; }; struct __riscv_mc_q_ext_state { uint64_t __f[64] __attribute__((__aligned__(16))); uint32_t __fcsr; uint32_t __reserved[3]; }; union __riscv_mc_fp_state { struct __riscv_mc_f_ext_state __f; struct __riscv_mc_d_ext_state __d; struct __riscv_mc_q_ext_state __q; }; /* This matches the kernel but with different names. */ typedef struct mcontext_t { __riscv_mc_gp_state __gregs; union __riscv_mc_fp_state __fpregs; } mcontext_t; /* This matches the kernel but using mcontext_t. */ typedef struct ucontext { unsigned long uc_flags; struct ucontext* uc_link; stack_t uc_stack; union { sigset_t uc_sigmask; sigset64_t uc_sigmask64; }; /* The kernel adds extra padding here to allow sigset_t to grow. */ char __padding[128 - sizeof(sigset_t)]; mcontext_t uc_mcontext; } ucontext_t; #endif # 391 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/ucontext.h" 3 4 __END_DECLS #endif /* ucontext.h expanded by -frewrite-includes */ # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 2 3 4 #define __BIONIC_HAVE_UCONTEXT_T __BEGIN_DECLS /* The kernel headers define SIG_DFL (0) and SIG_IGN (1) but not SIG_HOLD, since * SIG_HOLD is only used by the deprecated SysV signal API. */ #define SIG_HOLD __BIONIC_CAST(reinterpret_cast, sighandler_t, 2) /* We take a few real-time signals for ourselves. May as well use the same names as glibc. */ #define SIGRTMIN (__libc_current_sigrtmin()) #define SIGRTMAX (__libc_current_sigrtmax()) int __libc_current_sigrtmin(void); int __libc_current_sigrtmax(void); extern const char* _Nonnull const sys_siglist[_NSIG]; extern const char* _Nonnull const sys_signame[_NSIG]; /* BSD compatibility. */ #define si_timerid si_tid /* glibc compatibility. */ int sigaction(int __signal, const struct sigaction* _Nullable __new_action, struct sigaction* _Nullable __old_action); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 65 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigaction64(int __signal, const struct sigaction64* _Nullable __new_action, struct sigaction64* _Nullable __old_action) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 67 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int siginterrupt(int __signal, int __flag); sighandler_t _Nonnull signal(int __signal, sighandler_t _Nullable __handler); int sigaddset(sigset_t* _Nonnull __set, int __signal); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 75 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigaddset64(sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 77 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigdelset(sigset_t* _Nonnull __set, int __signal); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 81 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigdelset64(sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 83 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigemptyset(sigset_t* _Nonnull __set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 87 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigemptyset64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 89 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigfillset(sigset_t* _Nonnull __set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 93 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigfillset64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 95 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigismember(const sigset_t* _Nonnull __set, int __signal); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 99 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigismember64(const sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 101 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigpending(sigset_t* _Nonnull __set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 106 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigpending64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 108 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigprocmask(int __how, const sigset_t* _Nullable __new_set, sigset_t* _Nullable __old_set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 112 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigprocmask64(int __how, const sigset64_t* _Nullable __new_set, sigset64_t* _Nullable __old_set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 114 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigsuspend(const sigset_t* _Nonnull __mask); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigsuspend64(const sigset64_t* _Nonnull __mask) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 120 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigwait(const sigset_t* _Nonnull __set, int* _Nonnull __signal); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 124 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigwait64(const sigset64_t* _Nonnull __set, int* _Nonnull __signal) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 126 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 130 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sighold(int __signal) __attribute__((__deprecated__("use sigprocmask() or pthread_sigmask() instead"))) __INTRODUCED_IN(26); int sigignore(int __signal) __attribute__((__deprecated__("use sigaction() instead"))) __INTRODUCED_IN(26); int sigpause(int __signal) __attribute__((__deprecated__("use sigsuspend() instead"))) __INTRODUCED_IN(26); int sigrelse(int __signal) __attribute__((__deprecated__("use sigprocmask() or pthread_sigmask() instead"))) __INTRODUCED_IN(26); sighandler_t _Nonnull sigset(int __signal, sighandler_t _Nullable __handler) __attribute__((__deprecated__("use sigaction() instead"))) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 143 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int raise(int __signal); int kill(pid_t __pid, int __signal); int killpg(int __pgrp, int __signal); int tgkill(int __tgid, int __tid, int __signal); int sigaltstack(const stack_t* _Nullable __new_signal_stack, stack_t* _Nullable __old_signal_stack); void psiginfo(const siginfo_t* _Nonnull __info, const char* _Nullable __msg); void psignal(int __signal, const char* _Nullable __msg); int pthread_kill(pthread_t __pthread, int __signal); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 157 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 29 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 159 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int pthread_sigqueue(pthread_t __pthread, int __signal, const union sigval __value) __INTRODUCED_IN(29); #endif /* __ANDROID_API__ >= 29 */ # 161 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #endif # 163 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int pthread_sigmask(int __how, const sigset_t* _Nullable __new_set, sigset_t* _Nullable __old_set); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 167 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int pthread_sigmask64(int __how, const sigset64_t* _Nullable __new_set, sigset64_t* _Nullable __old_set) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 169 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 173 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigqueue(pid_t __pid, int __signal, const union sigval __value) __INTRODUCED_IN(23); int sigtimedwait(const sigset_t* _Nonnull __set, siginfo_t* _Nullable __info, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 176 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 179 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigtimedwait64(const sigset64_t* _Nonnull __set, siginfo_t* _Nullable __info, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 181 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 184 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigwaitinfo(const sigset_t* _Nonnull __set, siginfo_t* _Nullable __info) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 186 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 189 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 int sigwaitinfo64(const sigset64_t* _Nonnull __set, siginfo_t* _Nullable __info) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 191 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 __END_DECLS #endif # 196 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/signal.h" 3 4 #endif /* signal.h expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 2 3 4 __BEGIN_DECLS typedef unsigned long fd_mask; /** * The limit on the largest fd that can be used with this API. * Use instead. */ #define FD_SETSIZE 1024 #define NFDBITS (8 * sizeof(fd_mask)) /** * The type of a file descriptor set. Limited to 1024 fds. * Use instead. */ typedef struct { fd_mask fds_bits[FD_SETSIZE/NFDBITS]; } fd_set; #define __FDELT(fd) ((fd) / NFDBITS) #define __FDMASK(fd) (1UL << ((fd) % NFDBITS)) #define __FDS_BITS(type,set) (__BIONIC_CAST(static_cast, type, set)->fds_bits) /* Inline loop so we don't have to declare memset. */ #define FD_ZERO(set) \ do { \ size_t __i; \ for (__i = 0; __i < sizeof(fd_set)/sizeof(fd_mask); ++__i) { \ (set)->fds_bits[__i] = 0; \ } \ } while (0) void __FD_CLR_chk(int, fd_set* _Nonnull , size_t); void __FD_SET_chk(int, fd_set* _Nonnull, size_t); int __FD_ISSET_chk(int, const fd_set* _Nonnull, size_t); #define __FD_CLR(fd, set) (__FDS_BITS(fd_set*,set)[__FDELT(fd)] &= ~__FDMASK(fd)) #define __FD_SET(fd, set) (__FDS_BITS(fd_set*,set)[__FDELT(fd)] |= __FDMASK(fd)) #define __FD_ISSET(fd, set) ((__FDS_BITS(const fd_set*,set)[__FDELT(fd)] & __FDMASK(fd)) != 0) /** Removes `fd` from the given set. Use instead. */ #define FD_CLR(fd, set) __FD_CLR_chk(fd, set, __bos(set)) /** Adds `fd` to the given set. Use instead. */ #define FD_SET(fd, set) __FD_SET_chk(fd, set, __bos(set)) /** Tests whether `fd` is in the given set. Use instead. */ #define FD_ISSET(fd, set) __FD_ISSET_chk(fd, set, __bos(set)) /** * [select(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a * set of file descriptors. * * Use poll() instead. * * Returns the number of ready file descriptors on success, 0 for timeout, * and returns -1 and sets `errno` on failure. */ int select(int __max_fd_plus_one, fd_set* _Nullable __read_fds, fd_set* _Nullable __write_fds, fd_set* _Nullable __exception_fds, struct timeval* _Nullable __timeout); /** * [pselect(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a * set of file descriptors. * * Use ppoll() instead. * * Returns the number of ready file descriptors on success, 0 for timeout, * and returns -1 and sets `errno` on failure. */ int pselect(int __max_fd_plus_one, fd_set* _Nullable __read_fds, fd_set* _Nullable __write_fds, fd_set* _Nullable __exception_fds, const struct timespec* _Nullable __timeout, const sigset_t* _Nullable __mask); /** * [pselect64(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a * set of file descriptors. * * Use ppoll64() instead. * * Returns the number of ready file descriptors on success, 0 for timeout, * and returns -1 and sets `errno` on failure. * * Available since API level 28. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 124 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 int pselect64(int __max_fd_plus_one, fd_set* _Nullable __read_fds, fd_set* _Nullable __write_fds, fd_set* _Nullable __exception_fds, const struct timespec* _Nullable __timeout, const sigset64_t* _Nullable __mask) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 126 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/select.h" 3 4 __END_DECLS #endif /* select.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 2 3 4 __BEGIN_DECLS int gettimeofday(struct timeval* _Nullable __tv, struct timezone* _Nullable __tz); int settimeofday(const struct timeval* _Nullable __tv, const struct timezone* _Nullable __tz); int getitimer(int __which, struct itimerval* _Nonnull __current_value); int setitimer(int __which, const struct itimerval* _Nonnull __new_value, struct itimerval* _Nullable __old_value); int utimes(const char* _Nonnull __path, const struct timeval __times[_Nullable 2]); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 52 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 int futimes(int __fd, const struct timeval __times[_Nullable 2]) __INTRODUCED_IN(26); int lutimes(const char* _Nonnull __path, const struct timeval __times[_Nullable 2]) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 #endif # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 59 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 /** * [futimesat(2)](https://man7.org/linux/man-pages/man2/futimesat.2.html) sets * file timestamps. * * Note: Linux supports `__path` being NULL (in which case `__dir_fd` need not * be a directory), allowing futimensat() to be implemented with utimensat(). * Most callers should just use utimensat() directly, especially on Android * where utimensat() has been available for longer than futimesat(). * * Returns 0 on success and -1 and sets `errno` on failure. * * Available since API level 26. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 74 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 int futimesat(int __dir_fd, const char* __BIONIC_COMPLICATED_NULLNESS __path, const struct timeval __times[_Nullable 2]) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 76 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 #endif # 78 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 #define timerclear(a) \ ((a)->tv_sec = (a)->tv_usec = 0) #define timerisset(a) \ ((a)->tv_sec != 0 || (a)->tv_usec != 0) #define timercmp(a, b, op) \ ((a)->tv_sec == (b)->tv_sec \ ? (a)->tv_usec op (b)->tv_usec \ : (a)->tv_sec op (b)->tv_sec) #define timeradd(a, b, res) \ do { \ (res)->tv_sec = (a)->tv_sec + (b)->tv_sec; \ (res)->tv_usec = (a)->tv_usec + (b)->tv_usec; \ if ((res)->tv_usec >= 1000000) { \ (res)->tv_usec -= 1000000; \ (res)->tv_sec += 1; \ } \ } while (0) #define timersub(a, b, res) \ do { \ (res)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ (res)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ if ((res)->tv_usec < 0) { \ (res)->tv_usec += 1000000; \ (res)->tv_sec -= 1; \ } \ } while (0) #define TIMEVAL_TO_TIMESPEC(tv, ts) { \ (ts)->tv_sec = (tv)->tv_sec; \ (ts)->tv_nsec = (tv)->tv_usec * 1000; \ } #define TIMESPEC_TO_TIMEVAL(tv, ts) { \ (tv)->tv_sec = (ts)->tv_sec; \ (tv)->tv_usec = (ts)->tv_nsec / 1000; \ } __END_DECLS #endif # 122 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/sys/time.h" 3 4 #endif /* time.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* xlocale.h expanded by -frewrite-includes */ #include #else /* xlocale.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/xlocale.h" 1 3 4 /* * Copyright (C) 2014 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/xlocale.h" 3 4 /** * @file xlocale.h * @brief `locale_t` definition. * * Most users will want `` instead. `` is used by the C * library itself to export the `locale_t` type without exporting the * `` functions in other headers that export locale-sensitive * functions (such as ``). */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/xlocale.h" 3 4 # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/xlocale.h" 3 4 /* If we just use void* in the typedef, the compiler exposes that in error messages. */ struct __locale_t; /** * The `locale_t` type that represents a locale. */ typedef struct __locale_t* locale_t; #endif /* xlocale.h expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 2 3 4 __BEGIN_DECLS /* If we just use void* in the typedef, the compiler exposes that in error messages. */ struct __timezone_t; /** * The `timezone_t` type that represents a timezone. * * To use this with std::unique_ptr you'll want something like * `std::unique_ptr, decltype(&tzfree)> tz{tzalloc("Asia/Seoul"), tzfree};` * to remove the pointer. */ typedef struct __timezone_t* timezone_t; /** Divisor to compute seconds from the result of a call to clock(). */ #define CLOCKS_PER_SEC 1000000 /** * The name of the current timezone's non-daylight savings (`tzname[0]`) and * daylight savings (`tzname[1]`) variants. See tzset(). */ extern char* _Nonnull tzname[]; /** Whether the current timezone ever uses daylight savings time. See tzset(). */ extern int daylight; /** The difference in seconds between UTC and the current timezone. See tzset(). */ extern long int timezone; struct sigevent; /** * A "broken-down" time, useful for parsing/formatting times for human consumption. */ struct tm { /** Seconds, 0-60. (60 is a leap second.) */ int tm_sec; /** Minutes, 0-59. */ int tm_min; /** Hours, 0-23. */ int tm_hour; /** Day of month, 1-31. */ int tm_mday; /** Month of year, 0-11. (Not 1-12!) */ int tm_mon; /** Years since 1900. (So 2023 is 123, not 2023!) */ int tm_year; /** Day of week, 0-6. (Sunday is 0, Saturday is 6.) */ int tm_wday; /** Day of year, 0-365. */ int tm_yday; /** Daylight savings flag, positive for DST in effect, 0 for DST not in effect, and -1 for unknown. */ int tm_isdst; /** Offset from UTC (GMT) in seconds for this time. */ long int tm_gmtoff; /** Name of the timezone for this time. */ const char* _Nullable tm_zone; }; /** Alternative name for `tm_zone` in `struct tm`. */ #define TM_ZONE tm_zone /** * [time(2)](http://man7.org/linux/man-pages/man2/time.2.html) returns * the number of seconds since the Unix epoch (1970-01-01 00:00:00 +0000). * * Returns the time in seconds on success, and returns -1 and sets `errno` on failure. */ time_t time(time_t* _Nullable __t); /** * [nanosleep(2)](http://man7.org/linux/man-pages/man2/nanosleep.2.html) sleeps * for at least the given time (or until a signal arrives). * * Returns 0 on success, and returns -1 and sets `errno` on failure. If the sleep * was interrupted by a signal, `errno` will be `EINTR` and `remainder` will be * the amount of time remaining. */ int nanosleep(const struct timespec* _Nonnull __duration, struct timespec* _Nullable __remainder); /** * [asctime(3)](http://man7.org/linux/man-pages/man3/asctime.3p.html) formats * the time `tm` as a string. * * Returns a pointer to a string on success, and returns NULL on failure. * * That string will be overwritten by later calls to this function. * * New code should prefer strftime(). */ char* _Nullable asctime(const struct tm* _Nonnull __tm); /** * [asctime_r(3)](http://man7.org/linux/man-pages/man3/asctime_r.3p.html) formats * the time `tm` as a string in the given buffer `buf`. * * Returns a pointer to a string on success, and returns NULL on failure. * * New code should prefer strftime(). */ char* _Nullable asctime_r(const struct tm* _Nonnull __tm, char* _Nonnull __buf); /** * [difftime(3)](http://man7.org/linux/man-pages/man3/difftime.3.html) returns * the difference between two times. * * Returns the difference in seconds. */ double difftime(time_t __lhs, time_t __rhs); /** * [mktime(3)](http://man7.org/linux/man-pages/man3/mktime.3p.html) converts * broken-down time `tm` into the number of seconds since the Unix epoch. * * See tzset() for details of how the timezone is set, and mktime_rz() * for an alternative. * * Returns the time in seconds on success, and returns -1 and sets `errno` on failure. */ time_t mktime(struct tm* _Nonnull __tm); /** * mktime_z(3) converts broken-down time `tm` into the number of seconds * since the Unix epoch, assuming the given timezone. * * Returns the time in seconds on success, and returns -1 and sets `errno` on failure. * * Available since API level 35. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 35 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 171 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 time_t mktime_z(timezone_t _Nonnull __tz, struct tm* _Nonnull __tm) __INTRODUCED_IN(35); #endif /* __ANDROID_API__ >= 35 */ # 173 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 /** * [localtime(3)](http://man7.org/linux/man-pages/man3/localtime.3p.html) converts * the number of seconds since the Unix epoch in `t` to a broken-down time, taking * the device's timezone into account. * * That broken-down time will be overwritten by later calls to this function. * * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure. */ struct tm* _Nullable localtime(const time_t* _Nonnull __t); /** * [localtime_r(3)](http://man7.org/linux/man-pages/man3/localtime_r.3p.html) converts * the number of seconds since the Unix epoch in `t` to a broken-down time. * That broken-down time will be written to the given struct `tm`. * * See tzset() for details of how the timezone is set, and localtime_rz() * for an alternative. * * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure. */ struct tm* _Nullable localtime_r(const time_t* _Nonnull __t, struct tm* _Nonnull __tm); /** * localtime_rz(3) converts the number of seconds since the Unix epoch in * `t` to a broken-down time, assuming the given timezone. That broken-down * time will be written to the given struct `tm`. * * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure. * * Available since API level 35. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 35 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 209 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 struct tm* _Nullable localtime_rz(timezone_t _Nonnull __tz, const time_t* _Nonnull __t, struct tm* _Nonnull __tm) __INTRODUCED_IN(35); #endif /* __ANDROID_API__ >= 35 */ # 211 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 /** * Inverse of localtime(). */ time_t timelocal(struct tm* _Nonnull __tm); /** * [gmtime(3)](http://man7.org/linux/man-pages/man3/gmtime.3p.html) converts * the number of seconds since the Unix epoch in `t` to a broken-down time, using * UTC (historically also known as GMT). * * That broken-down time will be overwritten by later calls to this function. * * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure. */ struct tm* _Nullable gmtime(const time_t* _Nonnull __t); /** * [gmtime_r(3)](http://man7.org/linux/man-pages/man3/gmtime_r.3p.html) converts * the number of seconds since the Unix epoch in `t` to a broken-down time, using * UTC (historically also known as GMT). * * That broken-down time will be written to the provided struct `tm`. * * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure. */ struct tm* _Nullable gmtime_r(const time_t* _Nonnull __t, struct tm* _Nonnull __tm); /** * Inverse of gmtime(). */ time_t timegm(struct tm* _Nonnull __tm); /** * [strptime(3)](http://man7.org/linux/man-pages/man3/strptime.3.html) parses * a string `s` assuming format `fmt` into broken-down time `tm`. * * Returns a pointer to the first character _not_ parsed, or null if no characters were parsed. */ char* _Nullable strptime(const char* _Nonnull __s, const char* _Nonnull __fmt, struct tm* _Nonnull __tm) __strftimelike(2); /** * Equivalent to strptime() on Android where only C/POSIX locales are available. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 258 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 char* _Nullable strptime_l(const char* _Nonnull __s, const char* _Nonnull __fmt, struct tm* _Nonnull __tm, locale_t _Nonnull __l) __strftimelike(2) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 260 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 /** * [strftime(3)](http://man7.org/linux/man-pages/man3/strftime.3.html) formats * a broken-down time `tm` into the buffer `buf` using format `fmt`. * * Returns a pointer to the first character _not_ parsed, or null if no characters were parsed. */ size_t strftime(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, const struct tm* _Nullable __tm) __strftimelike(3); /** * Equivalent to strftime() on Android where only C/POSIX locales are available. */ size_t strftime_l(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, const struct tm* _Nullable __tm, locale_t _Nonnull __l) __strftimelike(3); /** * [ctime(3)](http://man7.org/linux/man-pages/man3/ctime.3p.html) formats * the time `tm` as a string. * * Returns a pointer to a string on success, and returns NULL on failure. * * That string will be overwritten by later calls to this function. * * New code should prefer strftime(). */ char* _Nullable ctime(const time_t* _Nonnull __t); /** * [ctime_r(3)](http://man7.org/linux/man-pages/man3/ctime.3p.html) formats * the time `tm` as a string in the given buffer `buf`. * * Returns a pointer to a string on success, and returns NULL on failure. * * New code should prefer strftime(). */ char* _Nullable ctime_r(const time_t* _Nonnull __t, char* _Nonnull __buf); /** * [tzset(3)](http://man7.org/linux/man-pages/man3/tzset.3.html) tells * libc that the timezone has changed. * * tzset() on Android looks at both the system property * `persist.sys.timezone` and the environment variable `TZ`. The former is * the device's current timezone as shown in Settings, while the latter is * usually unset but can be used to override the global setting. This is a * bad idea outside of unit tests or single-threaded programs because it's * inherently thread-unsafe. See tzalloc(), localtime_rz(), mktime_z(), * and tzfree() for an alternative. */ void tzset(void); /** * tzalloc(3) allocates a timezone corresponding to the given Olson ID. * * A null `id` returns the system timezone (as seen in Settings) from * the system property `persist.sys.timezone`, ignoring `$TZ`. Although * tzset() honors `$TZ`, callers of tzalloc() can use `$TZ` themselves if * that's the (thread-unsafe) behavior they want, but by ignoring `$TZ` * tzalloc() is thread safe (though obviously the system timezone can * change, especially if your mobile device is actually mobile!). * * To use this with std::unique_ptr you'll want something like * `std::unique_ptr, decltype(&tzfree)> tz{tzalloc("Asia/Seoul"), tzfree};` * to remove the pointer. * * Returns a timezone object on success, and returns NULL and sets `errno` on failure. * * Available since API level 35. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 35 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 331 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 timezone_t _Nullable tzalloc(const char* _Nullable __id) __INTRODUCED_IN(35); /** * tzfree(3) frees a timezone object returned by tzalloc(). * * To use this with std::unique_ptr you'll want something like * `std::unique_ptr, decltype(&tzfree)> tz{tzalloc("Asia/Seoul"), tzfree};` * to remove the pointer. * * Available since API level 35. */ void tzfree(timezone_t _Nullable __tz) __INTRODUCED_IN(35); #endif /* __ANDROID_API__ >= 35 */ # 344 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 /** * [clock(3)](http://man7.org/linux/man-pages/man3/clock.3.html) * returns an approximation of CPU time used, equivalent to * `clock_gettime(CLOCK_PROCESS_CPUTIME_ID)` but with more confusing * units. Use `CLOCKS_PER_SEC` to convert the result to seconds. * * Returns the time in seconds on success, and returns -1 and sets `errno` on failure. * * New code should prefer `clock_gettime(CLOCK_PROCESS_CPUTIME_ID)`. */ clock_t clock(void); /** * [clock_getcpuclockid(3)](http://man7.org/linux/man-pages/man3/clock_getcpuclockid.3.html) * gets the clock ID of the cpu-time clock for the given `pid`. * * Returns 0 on success, and returns -1 and returns an error number on failure. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 366 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 int clock_getcpuclockid(pid_t __pid, clockid_t* _Nonnull __clock) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 368 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 /** * [clock_getres(2)](http://man7.org/linux/man-pages/man2/clock_getres.2.html) * gets the resolution of the given clock. * * Returns 0 on success, and returns -1 and returns an error number on failure. */ int clock_getres(clockid_t __clock, struct timespec* _Nullable __resolution); /** * [clock_gettime(2)](http://man7.org/linux/man-pages/man2/clock_gettime.2.html) * gets the time according to the given clock. * * Returns 0 on success, and returns -1 and returns an error number on failure. */ int clock_gettime(clockid_t __clock, struct timespec* _Nonnull __ts); /** * [clock_nanosleep(2)](http://man7.org/linux/man-pages/man2/clock_nanosleep.2.html) * sleeps for the given time (or until the given time if the TIMER_ABSTIME flag * is used), as measured by the given clock. * * Returns 0 on success, and returns -1 and returns an error number on failure. * If the sleep was interrupted by a signal, the return value will be `EINTR` * and `remainder` will be the amount of time remaining. */ int clock_nanosleep(clockid_t __clock, int __flags, const struct timespec* _Nonnull __time, struct timespec* _Nullable __remainder); /** * [clock_settime(2)](http://man7.org/linux/man-pages/man2/clock_settime.2.html) * sets the time for the given clock. * * Returns 0 on success, and returns -1 and returns an error number on failure. */ int clock_settime(clockid_t __clock, const struct timespec* _Nonnull __ts); /** * [timer_create(2)](http://man7.org/linux/man-pages/man2/timer_create.2.html) * creates a POSIX timer. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int timer_create(clockid_t __clock, struct sigevent* _Nullable __event, timer_t _Nonnull * _Nonnull __timer_ptr); /** * [timer_delete(2)](http://man7.org/linux/man-pages/man2/timer_delete.2.html) * destroys a POSIX timer. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int timer_delete(timer_t _Nonnull __timer); /** * [timer_settime(2)](http://man7.org/linux/man-pages/man2/timer_settime.2.html) * starts or stops a POSIX timer. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int timer_settime(timer_t _Nonnull __timer, int __flags, const struct itimerspec* _Nonnull __new_value, struct itimerspec* _Nullable __old_value); /** * [timer_gettime(2)](http://man7.org/linux/man-pages/man2/timer_gettime.2.html) * gets the time until the given timer next fires. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int timer_gettime(timer_t _Nonnull _timer, struct itimerspec* _Nonnull __ts); /** * [timer_getoverrun(2)](http://man7.org/linux/man-pages/man2/timer_getoverrun.2.html) * gets the overrun count (the number of times the timer should have fired, but * didn't) for the last time the timer fired. * * Returns the overrun count on success, and returns -1 and sets `errno` on failure. */ int timer_getoverrun(timer_t _Nonnull __timer); /** * The timebase for timespec_get() and timespec_getres() corresponding to CLOCK_REALTIME. * * Available since API level 29. */ #define TIME_UTC (CLOCK_REALTIME+1) /** * The timebase for timespec_get() and timespec_getres() corresponding to CLOCK_MONOTONIC. * * Available since API level 35. */ #define TIME_MONOTONIC (CLOCK_MONOTONIC+1) /** * The timebase for timespec_get() and timespec_getres() corresponding to CLOCK_PROCESS_CPUTIME_ID. * * Available since API level 35. */ #define TIME_ACTIVE (CLOCK_PROCESS_CPUTIME_ID+1) /** * The timebase for timespec_get() and timespec_getres() corresponding to CLOCK_THREAD_CPUTIME_ID. * * Available since API level 35. */ #define TIME_THREAD_ACTIVE (CLOCK_THREAD_CPUTIME_ID+1) /** * timespec_get(3) is equivalent to clock_gettime() for the clock corresponding to the given base. * * Returns the base on success and returns 0 on failure. * * Available since API level 29 for TIME_UTC; other bases arrived later. * Code for Android should prefer clock_gettime(). */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 29 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 484 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 int timespec_get(struct timespec* _Nonnull __ts, int __base) __INTRODUCED_IN(29); #endif /* __ANDROID_API__ >= 29 */ # 486 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 /** * timespec_getres(3) is equivalent to clock_getres() for the clock corresponding to the given base. * * Returns the base on success and returns 0 on failure. * * Available since API level 35. * Code for Android should prefer clock_gettime(). */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 35 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 498 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 int timespec_getres(struct timespec* _Nonnull __ts, int __base) __INTRODUCED_IN(35); #endif /* __ANDROID_API__ >= 35 */ # 500 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/time.h" 3 4 __END_DECLS #endif /* time.h expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 2 3 4 __BEGIN_DECLS enum { PTHREAD_MUTEX_NORMAL = 0, PTHREAD_MUTEX_RECURSIVE = 1, PTHREAD_MUTEX_ERRORCHECK = 2, PTHREAD_MUTEX_ERRORCHECK_NP = PTHREAD_MUTEX_ERRORCHECK, PTHREAD_MUTEX_RECURSIVE_NP = PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL }; #define PTHREAD_MUTEX_INITIALIZER { { ((PTHREAD_MUTEX_NORMAL & 3) << 14) } } #define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { ((PTHREAD_MUTEX_RECURSIVE & 3) << 14) } } #define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { ((PTHREAD_MUTEX_ERRORCHECK & 3) << 14) } } #define PTHREAD_COND_INITIALIZER { { 0 } } #define PTHREAD_COND_INITIALIZER_MONOTONIC_NP { { 1 << 1 } } #define PTHREAD_RWLOCK_INITIALIZER { { 0 } } enum { PTHREAD_RWLOCK_PREFER_READER_NP = 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP = 1, }; #define PTHREAD_ONCE_INIT 0 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 74 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #define PTHREAD_BARRIER_SERIAL_THREAD (-1) #endif # 76 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #define PTHREAD_STACK_MIN 16384 #else # 80 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #define PTHREAD_STACK_MIN 8192 #endif # 82 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #define PTHREAD_CREATE_DETACHED 1 #define PTHREAD_CREATE_JOINABLE 0 #define PTHREAD_EXPLICIT_SCHED 0 #define PTHREAD_INHERIT_SCHED 1 #define PTHREAD_PRIO_NONE 0 #define PTHREAD_PRIO_INHERIT 1 #define PTHREAD_PROCESS_PRIVATE 0 #define PTHREAD_PROCESS_SHARED 1 #define PTHREAD_SCOPE_SYSTEM 0 #define PTHREAD_SCOPE_PROCESS 1 int pthread_atfork(void (* _Nullable __prepare)(void), void (* _Nullable __parent)(void), void (* _Nullable __child)(void)); int pthread_attr_destroy(pthread_attr_t* _Nonnull __attr); int pthread_attr_getdetachstate(const pthread_attr_t* _Nonnull __attr, int* _Nonnull __state); int pthread_attr_getguardsize(const pthread_attr_t* _Nonnull __attr, size_t* _Nonnull __size); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 105 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_attr_getinheritsched(const pthread_attr_t* _Nonnull __attr, int* _Nonnull __flag) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 107 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_attr_getschedparam(const pthread_attr_t* _Nonnull __attr, struct sched_param* _Nonnull __param); int pthread_attr_getschedpolicy(const pthread_attr_t* _Nonnull __attr, int* _Nonnull __policy); int pthread_attr_getscope(const pthread_attr_t* _Nonnull __attr, int* _Nonnull __scope); int pthread_attr_getstack(const pthread_attr_t* _Nonnull __attr, void* _Nullable * _Nonnull __addr, size_t* _Nonnull __size); int pthread_attr_getstacksize(const pthread_attr_t* _Nonnull __attr, size_t* _Nonnull __size); int pthread_attr_init(pthread_attr_t* _Nonnull __attr); int pthread_attr_setdetachstate(pthread_attr_t* _Nonnull __attr, int __state); int pthread_attr_setguardsize(pthread_attr_t* _Nonnull __attr, size_t __size); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_attr_setinheritsched(pthread_attr_t* _Nonnull __attr, int __flag) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 120 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_attr_setschedparam(pthread_attr_t* _Nonnull __attr, const struct sched_param* _Nonnull __param); int pthread_attr_setschedpolicy(pthread_attr_t* _Nonnull __attr, int __policy); int pthread_attr_setscope(pthread_attr_t* _Nonnull __attr, int __scope); int pthread_attr_setstack(pthread_attr_t* _Nonnull __attr, void* _Nonnull __addr, size_t __size); int pthread_attr_setstacksize(pthread_attr_t* _Nonnull __addr, size_t __size); int pthread_condattr_destroy(pthread_condattr_t* _Nonnull __attr); int pthread_condattr_getclock(const pthread_condattr_t* _Nonnull __attr, clockid_t* _Nonnull __clock); int pthread_condattr_getpshared(const pthread_condattr_t* _Nonnull __attr, int* _Nonnull __shared); int pthread_condattr_init(pthread_condattr_t* _Nonnull __attr); int pthread_condattr_setclock(pthread_condattr_t* _Nonnull __attr, clockid_t __clock); int pthread_condattr_setpshared(pthread_condattr_t* _Nonnull __attr, int __shared); int pthread_cond_broadcast(pthread_cond_t* _Nonnull __cond); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 30 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_cond_clockwait(pthread_cond_t* _Nonnull __cond, pthread_mutex_t* _Nonnull __mutex, clockid_t __clock, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(30); #endif /* __ANDROID_API__ >= 30 */ # 140 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_cond_destroy(pthread_cond_t* _Nonnull __cond); int pthread_cond_init(pthread_cond_t* _Nonnull __cond, const pthread_condattr_t* _Nullable __attr); int pthread_cond_signal(pthread_cond_t* _Nonnull __cond); int pthread_cond_timedwait(pthread_cond_t* _Nonnull __cond, pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout); /* * Condition variables use CLOCK_REALTIME by default for their timeouts, however that is * typically inappropriate, since that clock can change dramatically, causing the timeout to * either expire earlier or much later than intended. * Condition variables have an initialization option to use CLOCK_MONOTONIC, and in addition, * Android provides pthread_cond_timedwait_monotonic_np to use CLOCK_MONOTONIC on a condition * variable for this single wait no matter how it was initialized. * Note that pthread_cond_clockwait() allows specifying an arbitrary clock and has superseded this * function. */ #if 0 /* disabled by -frewrite-includes */ #if (!defined(__LP64__)) || (defined(__LP64__) && __ANDROID_API__ >= 28) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 157 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_cond_timedwait_monotonic_np(pthread_cond_t* _Nonnull __cond, pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout) __INTRODUCED_IN_64(28); #endif /* (!defined(__LP64__)) || (defined(__LP64__) && __ANDROID_API__ >= 28) */ # 160 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_cond_wait(pthread_cond_t* _Nonnull __cond, pthread_mutex_t* _Nonnull __mutex); #if 0 /* disabled by -frewrite-includes */ #if defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 164 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 /* * Disable -Wbuiltin-requires-header because clang confuses this declaration with the one defined in * "llvm/tools/clang/include/clang/Basic/Builtins.def", which did not define any formal arguments. * It seems to be an upstream bug and the fix (https://reviews.llvm.org/D58531) is still under * review. Thus, let's disable the warning for this function declaration. */ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wbuiltin-requires-header" #endif # 173 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_create(pthread_t* _Nonnull __pthread_ptr, pthread_attr_t const* _Nullable __attr, void* _Nonnull (* _Nonnull __start_routine)(void* _Nonnull), void* _Nullable); #if 0 /* disabled by -frewrite-includes */ #if defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 175 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #pragma clang diagnostic pop #endif # 177 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_detach(pthread_t __pthread); void pthread_exit(void* _Nullable __return_value) __noreturn; int pthread_equal(pthread_t __lhs, pthread_t __rhs); int pthread_getattr_np(pthread_t __pthread, pthread_attr_t* _Nonnull __attr); int pthread_getcpuclockid(pthread_t __pthread, clockid_t* _Nonnull __clock); void* _Nullable pthread_getspecific(pthread_key_t __key); pid_t pthread_gettid_np(pthread_t __pthread); int pthread_join(pthread_t __pthread, void* _Nullable * _Nullable __return_value_ptr); /** * [pthread_key_create(3)](https://man7.org/linux/man-pages/man3/pthread_key_create.3p.html) * creates a key for thread-specific data. * * There is a limit of `PTHREAD_KEYS_MAX` keys per process, but most callers * should just use the C or C++ `thread_local` storage specifier anyway. When * targeting new enough OS versions, the compiler will automatically use * ELF TLS; when targeting old OS versions the emutls implementation will * multiplex pthread keys behind the scenes, using one per library rather than * one per thread-local variable. If you are implementing the runtime for a * different language, you should consider similar implementation choices and * avoid a direct one-to-one mapping from thread locals to pthread keys. * * Returns 0 on success and returns an error number on failure. */ int pthread_key_create(pthread_key_t* _Nonnull __key_ptr, void (* _Nullable __key_destructor)(void* _Nullable)); /** * [pthread_key_delete(3)](https://man7.org/linux/man-pages/man3/pthread_key_delete.3p.html) * deletes a key for thread-specific data. * * Returns 0 on success and returns an error number on failure. */ int pthread_key_delete(pthread_key_t __key); int pthread_mutexattr_destroy(pthread_mutexattr_t* _Nonnull __attr); int pthread_mutexattr_getpshared(const pthread_mutexattr_t* _Nonnull __attr, int* _Nonnull __shared); int pthread_mutexattr_gettype(const pthread_mutexattr_t* _Nonnull __attr, int* _Nonnull __type); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 223 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_mutexattr_getprotocol(const pthread_mutexattr_t* _Nonnull __attr, int* _Nonnull __protocol) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 225 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_mutexattr_init(pthread_mutexattr_t* _Nonnull __attr); int pthread_mutexattr_setpshared(pthread_mutexattr_t* _Nonnull __attr, int __shared); int pthread_mutexattr_settype(pthread_mutexattr_t* _Nonnull __attr, int __type); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 231 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_mutexattr_setprotocol(pthread_mutexattr_t* _Nonnull __attr, int __protocol) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 233 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 30 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 237 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_mutex_clocklock(pthread_mutex_t* _Nonnull __mutex, clockid_t __clock, const struct timespec* _Nullable __abstime) __INTRODUCED_IN(30); #endif /* __ANDROID_API__ >= 30 */ # 240 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_mutex_destroy(pthread_mutex_t* _Nonnull __mutex); int pthread_mutex_init(pthread_mutex_t* _Nonnull __mutex, const pthread_mutexattr_t* _Nullable __attr); int pthread_mutex_lock(pthread_mutex_t* _Nonnull __mutex); int pthread_mutex_timedlock(pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout); /* * POSIX historically only supported using pthread_mutex_timedlock() with CLOCK_REALTIME, however * that is typically inappropriate, since that clock can change dramatically, causing the timeout to * either expire earlier or much later than intended. * This function is added to use a timespec based on CLOCK_MONOTONIC that does not suffer * from this issue. * Note that pthread_mutex_clocklock() allows specifying an arbitrary clock and has superseded this * function. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 257 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_mutex_timedlock_monotonic_np(pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 260 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_mutex_trylock(pthread_mutex_t* _Nonnull __mutex); int pthread_mutex_unlock(pthread_mutex_t* _Nonnull __mutex); int pthread_once(pthread_once_t* _Nonnull __once, void (* _Nonnull __init_routine)(void)); int pthread_rwlockattr_init(pthread_rwlockattr_t* _Nonnull __attr); int pthread_rwlockattr_destroy(pthread_rwlockattr_t* _Nonnull __attr); int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t* _Nonnull __attr, int* _Nonnull __shared); int pthread_rwlockattr_setpshared(pthread_rwlockattr_t* _Nonnull __attr, int __shared); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t* _Nonnull __attr, int* _Nonnull __kind) __INTRODUCED_IN(23); int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t* _Nonnull __attr, int __kind) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 276 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 30 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 280 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_rwlock_clockrdlock(pthread_rwlock_t* _Nonnull __rwlock, clockid_t __clock, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(30); int pthread_rwlock_clockwrlock(pthread_rwlock_t* _Nonnull __rwlock, clockid_t __clock, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(30); #endif /* __ANDROID_API__ >= 30 */ # 285 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_rwlock_destroy(pthread_rwlock_t* _Nonnull __rwlock); int pthread_rwlock_init(pthread_rwlock_t* _Nonnull __rwlock, const pthread_rwlockattr_t* _Nullable __attr); int pthread_rwlock_rdlock(pthread_rwlock_t* _Nonnull __rwlock); int pthread_rwlock_timedrdlock(pthread_rwlock_t* _Nonnull __rwlock, const struct timespec* _Nullable __timeout); /* See the comment on pthread_mutex_timedlock_monotonic_np for usage of this function. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 293 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_rwlock_timedrdlock_monotonic_np(pthread_rwlock_t* _Nonnull __rwlock, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 296 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_rwlock_timedwrlock(pthread_rwlock_t* _Nonnull __rwlock, const struct timespec* _Nullable __timeout); /* See the comment on pthread_mutex_timedlock_monotonic_np for usage of this function. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 301 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_rwlock_timedwrlock_monotonic_np(pthread_rwlock_t* _Nonnull __rwlock, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 304 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_rwlock_tryrdlock(pthread_rwlock_t* _Nonnull __rwlock); int pthread_rwlock_trywrlock(pthread_rwlock_t* _Nonnull __rwlock); int pthread_rwlock_unlock(pthread_rwlock_t* _Nonnull __rwlock); int pthread_rwlock_wrlock(pthread_rwlock_t* _Nonnull __rwlock); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 311 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_barrierattr_init(pthread_barrierattr_t* _Nonnull __attr) __INTRODUCED_IN(24); int pthread_barrierattr_destroy(pthread_barrierattr_t* _Nonnull __attr) __INTRODUCED_IN(24); int pthread_barrierattr_getpshared(const pthread_barrierattr_t* _Nonnull __attr, int* _Nonnull __shared) __INTRODUCED_IN(24); int pthread_barrierattr_setpshared(pthread_barrierattr_t* _Nonnull __attr, int __shared) __INTRODUCED_IN(24); #endif # 316 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 318 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_barrier_init(pthread_barrier_t* _Nonnull __barrier, const pthread_barrierattr_t* _Nullable __attr, unsigned __count) __INTRODUCED_IN(24); int pthread_barrier_destroy(pthread_barrier_t* _Nonnull __barrier) __INTRODUCED_IN(24); int pthread_barrier_wait(pthread_barrier_t* _Nonnull __barrier) __INTRODUCED_IN(24); #endif # 322 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 324 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_spin_destroy(pthread_spinlock_t* _Nonnull __spinlock) __INTRODUCED_IN(24); int pthread_spin_init(pthread_spinlock_t* _Nonnull __spinlock, int __shared) __INTRODUCED_IN(24); int pthread_spin_lock(pthread_spinlock_t* _Nonnull __spinlock) __INTRODUCED_IN(24); int pthread_spin_trylock(pthread_spinlock_t* _Nonnull __spinlock) __INTRODUCED_IN(24); int pthread_spin_unlock(pthread_spinlock_t* _Nonnull __spinlock) __INTRODUCED_IN(24); #endif # 330 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 pthread_t pthread_self(void) __attribute_const__; #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 334 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 336 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_getname_np(pthread_t __pthread, char* _Nonnull __buf, size_t __n) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 338 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 #endif # 340 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 /* TODO: this should be __USE_GNU too. */ int pthread_setname_np(pthread_t __pthread, const char* _Nonnull __name); /** * [pthread_setschedparam(3)](https://man7.org/linux/man-pages/man3/pthread_setschedparam.3.html) * sets the scheduler policy and parameters of the given thread. * * This call is not useful to applications on Android, because they don't * have permission to set their scheduling policy, and the only priority * for their policy is 0 anyway. If you only need to set your scheduling * priority, see setpriority() instead. * * Returns 0 on success and returns an error number on failure. */ int pthread_setschedparam(pthread_t __pthread, int __policy, const struct sched_param* _Nonnull __param); /** * [pthread_getschedparam(3)](https://man7.org/linux/man-pages/man3/pthread_getschedparam.3.html) * gets the scheduler policy and parameters of the given thread. * * Returns 0 on success and returns an error number on failure. */ int pthread_getschedparam(pthread_t __pthread, int* _Nonnull __policy, struct sched_param* _Nonnull __param); /** * [pthread_setschedprio(3)](https://man7.org/linux/man-pages/man3/pthread_setschedprio.3.html) * sets the scheduler priority of the given thread. * * This call is not useful to applications on Android, because they don't * have permission to set their scheduling policy, and the only priority * for their policy is 0 anyway. If you only need to set your scheduling * priority, see setpriority() instead. * * Returns 0 on success and returns an error number on failure. * * Available since API level 28. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 379 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_setschedprio(pthread_t __pthread, int __priority) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 381 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/pthread.h" 3 4 int pthread_setspecific(pthread_key_t __key, const void* _Nullable __value); typedef void (* _Nullable __pthread_cleanup_func_t)(void* _Nullable); typedef struct __pthread_cleanup_t { struct __pthread_cleanup_t* _Nullable __cleanup_prev; __pthread_cleanup_func_t _Nullable __cleanup_routine; void* _Nullable __cleanup_arg; } __pthread_cleanup_t; void __pthread_cleanup_push(__pthread_cleanup_t* _Nonnull c, __pthread_cleanup_func_t _Nullable, void* _Nullable); void __pthread_cleanup_pop(__pthread_cleanup_t* _Nonnull, int); /* Believe or not, the definitions of pthread_cleanup_push and * pthread_cleanup_pop below are correct. Posix states that these * can be implemented as macros that might introduce opening and * closing braces, and that using setjmp/longjmp/return/break/continue * between them results in undefined behavior. */ #define pthread_cleanup_push(routine, arg) \ do { \ __pthread_cleanup_t __cleanup; \ __pthread_cleanup_push( &__cleanup, (routine), (arg) ); \ #define pthread_cleanup_pop(execute) \ __pthread_cleanup_pop( &__cleanup, (execute)); \ } while (0); \ __END_DECLS #endif /* pthread.h expanded by -frewrite-includes */ # 147 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" 2 #define THREADFN void * #define THREAD_EXIT_SUCCESS NULL #endif # 150 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #ifdef __cplusplus } // extern "C" #endif # 154 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #endif // CONFIG_MULTITHREAD # 156 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #endif // VPX_VPX_UTIL_VPX_PTHREAD_H_ # 158 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_pthread.h" #endif /* vpx_pthread.h expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* encodemb.h expanded by -frewrite-includes */ #include "encodemb.h" #else /* encodemb.h expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_ENCODEMB_H_ #define VPX_VP8_ENCODER_ENCODEMB_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* onyx_int.h expanded by -frewrite-includes */ #include "onyx_int.h" #else /* onyx_int.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_ONYX_INT_H_ #define VPX_VP8_ENCODER_ONYX_INT_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/onyx.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "treewriter.h" #endif /* expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "tokenize.h" #endif /* expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 21 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/onyxc_int.h" #endif /* expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_dsp/variance.h" #endif /* expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_util/vpx_pthread.h" #endif /* expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 24 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "encodemb.h" #endif /* expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 25 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/encoder/quantize.h" #endif /* expanded by -frewrite-includes */ # 25 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 26 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/entropy.h" #endif /* expanded by -frewrite-includes */ # 26 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/threading.h" #endif /* expanded by -frewrite-includes */ # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 28 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/mem.h" #endif /* expanded by -frewrite-includes */ # 28 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 29 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/internal/vpx_codec_internal.h" #endif /* expanded by -frewrite-includes */ # 29 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 30 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vp8.h" #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 31 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "mcomp.h" #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 32 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/findnearmv.h" #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 33 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "lookahead.h" #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 34 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 35 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/encoder/denoising.h" #endif /* expanded by -frewrite-includes */ # 35 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 36 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #endif # 37 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #ifdef __cplusplus extern "C" { #endif # 41 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #define MIN_GF_INTERVAL 4 #define DEFAULT_GF_INTERVAL 7 #define KEY_FRAME_CONTEXT 5 #define MAX_LAG_BUFFERS (CONFIG_REALTIME_ONLY ? 1 : 25) #define AF_THRESH 25 #define AF_THRESH2 100 #define ARF_DECAY_THRESH 12 #define MIN_THRESHMULT 32 #define MAX_THRESHMULT 512 #define GF_ZEROMV_ZBIN_BOOST 12 #define LF_ZEROMV_ZBIN_BOOST 6 #define MV_ZBIN_BOOST 4 #define ZBIN_OQ_MAX 192 #define VP8_TEMPORAL_ALT_REF !CONFIG_REALTIME_ONLY /* vp8 uses 10,000,000 ticks/second as time stamp */ #define TICKS_PER_SEC 10000000 typedef struct { int kf_indicated; unsigned int frames_since_key; unsigned int frames_since_golden; int filter_level; int frames_till_gf_update_due; int recent_ref_frame_usage[MAX_REF_FRAMES]; MV_CONTEXT mvc[2]; int mvcosts[2][MVvals + 1]; #ifdef MODE_STATS int y_modes[5]; int uv_modes[4]; int b_modes[10]; int inter_y_modes[10]; int inter_uv_modes[4]; int inter_b_modes[10]; #endif # 85 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" vp8_prob ymode_prob[4], uv_mode_prob[3]; /* interframe intra mode probs */ vp8_prob kf_ymode_prob[4], kf_uv_mode_prob[3]; /* keyframe "" */ int ymode_count[5], uv_mode_count[4]; /* intra MB type cts this frame */ int count_mb_ref_frame_usage[MAX_REF_FRAMES]; int this_frame_percent_intra; int last_frame_percent_intra; } CODING_CONTEXT; typedef struct { double frame; double intra_error; double coded_error; double ssim_weighted_pred_err; double pcnt_inter; double pcnt_motion; double pcnt_second_ref; double pcnt_neutral; double MVr; double mvr_abs; double MVc; double mvc_abs; double MVrv; double MVcv; double mv_in_out_count; double new_mv_count; double duration; double count; } FIRSTPASS_STATS; typedef struct { int frames_so_far; double frame_intra_error; double frame_coded_error; double frame_pcnt_inter; double frame_pcnt_motion; double frame_mvr; double frame_mvr_abs; double frame_mvc; double frame_mvc_abs; } ONEPASS_FRAMESTATS; typedef enum { THR_ZERO1 = 0, THR_DC = 1, THR_NEAREST1 = 2, THR_NEAR1 = 3, THR_ZERO2 = 4, THR_NEAREST2 = 5, THR_ZERO3 = 6, THR_NEAREST3 = 7, THR_NEAR2 = 8, THR_NEAR3 = 9, THR_V_PRED = 10, THR_H_PRED = 11, THR_TM = 12, THR_NEW1 = 13, THR_NEW2 = 14, THR_NEW3 = 15, THR_SPLIT1 = 16, THR_SPLIT2 = 17, THR_SPLIT3 = 18, THR_B_PRED = 19 } THR_MODES; typedef enum { DIAMOND = 0, NSTEP = 1, HEX = 2 } SEARCH_METHODS; typedef struct { int RD; SEARCH_METHODS search_method; int improved_quant; int improved_dct; int auto_filter; int recode_loop; int iterative_sub_pixel; int half_pixel_search; int quarter_pixel_search; int thresh_mult[MAX_MODES]; int max_step_search_steps; int first_step; int optimize_coefficients; int use_fastquant_for_pick; int no_skip_block4x4_search; int improved_mv_pred; } SPEED_FEATURES; typedef struct { MACROBLOCK mb; int segment_counts[MAX_MB_SEGMENTS]; int totalrate; } MB_ROW_COMP; typedef struct { TOKENEXTRA *start; TOKENEXTRA *stop; } TOKENLIST; typedef struct { int ithread; void *ptr1; void *ptr2; } ENCODETHREAD_DATA; typedef struct { int ithread; void *ptr1; } LPFTHREAD_DATA; enum { BLOCK_16X8, BLOCK_8X16, BLOCK_8X8, BLOCK_4X4, BLOCK_16X16, BLOCK_MAX_SEGMENTS }; typedef struct { /* Layer configuration */ double framerate; int target_bandwidth; /* bits per second */ /* Layer specific coding parameters */ int64_t starting_buffer_level; int64_t optimal_buffer_level; int64_t maximum_buffer_size; int64_t starting_buffer_level_in_ms; int64_t optimal_buffer_level_in_ms; int64_t maximum_buffer_size_in_ms; int avg_frame_size_for_layer; int64_t buffer_level; int64_t bits_off_target; int64_t total_actual_bits; int total_target_vs_actual; int worst_quality; int active_worst_quality; int best_quality; int active_best_quality; int ni_av_qi; int ni_tot_qi; int ni_frames; int avg_frame_qindex; double rate_correction_factor; double key_frame_rate_correction_factor; double gf_rate_correction_factor; int zbin_over_quant; int inter_frame_target; int64_t total_byte_count; int filter_level; int frames_since_last_drop_overshoot; int force_maxqp; int last_frame_percent_intra; int count_mb_ref_frame_usage[MAX_REF_FRAMES]; int last_q[2]; } LAYER_CONTEXT; typedef struct VP8_COMP { DECLARE_ALIGNED(16, short, Y1quant[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y1quant_shift[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y1zbin[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y1round[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2quant[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2quant_shift[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2zbin[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2round[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVquant[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVquant_shift[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVzbin[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVround[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, zrun_zbin_boost_y1[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, zrun_zbin_boost_y2[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, zrun_zbin_boost_uv[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y1quant_fast[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2quant_fast[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVquant_fast[QINDEX_RANGE][16]); MACROBLOCK mb; VP8_COMMON common; vp8_writer bc[9]; /* one boolcoder for each partition */ VP8_CONFIG oxcf; struct lookahead_ctx *lookahead; struct lookahead_entry *source; struct lookahead_entry *alt_ref_source; struct lookahead_entry *last_source; YV12_BUFFER_CONFIG *Source; YV12_BUFFER_CONFIG *un_scaled_source; YV12_BUFFER_CONFIG scaled_source; YV12_BUFFER_CONFIG *last_frame_unscaled_source; unsigned int frames_till_alt_ref_frame; /* frame in src_buffers has been identified to be encoded as an alt ref */ int source_alt_ref_pending; /* an alt ref frame has been encoded and is usable */ int source_alt_ref_active; /* source of frame to encode is an exact copy of an alt ref frame */ int is_src_frame_alt_ref; /* golden frame same as last frame ( short circuit gold searches) */ int gold_is_last; /* Alt reference frame same as last ( short circuit altref search) */ int alt_is_last; /* don't do both alt and gold search ( just do gold). */ int gold_is_alt; YV12_BUFFER_CONFIG pick_lf_lvl_frame; TOKENEXTRA *tok; unsigned int tok_count; unsigned int frames_since_key; unsigned int key_frame_frequency; unsigned int this_key_frame_forced; unsigned int next_key_frame_forced; /* Ambient reconstruction err target for force key frames */ int ambient_err; unsigned int mode_check_freq[MAX_MODES]; int rd_baseline_thresh[MAX_MODES]; int RDMULT; int RDDIV; CODING_CONTEXT coding_context; /* Rate targeting variables */ int64_t last_prediction_error; int64_t last_intra_error; int this_frame_target; int projected_frame_size; int last_q[2]; /* Separate values for Intra/Inter */ double rate_correction_factor; double key_frame_rate_correction_factor; double gf_rate_correction_factor; int frames_since_golden; /* Count down till next GF */ int frames_till_gf_update_due; /* GF interval chosen when we coded the last GF */ int current_gf_interval; /* Total bits overspent because of GF boost (cumulative) */ int gf_overspend_bits; /* Used in the few frames following a GF to recover the extra bits * spent in that GF */ int non_gf_bitrate_adjustment; /* Extra bits spent on key frames that need to be recovered */ int kf_overspend_bits; /* Current number of bit s to try and recover on each inter frame. */ int kf_bitrate_adjustment; int max_gf_interval; int baseline_gf_interval; int active_arnr_frames; int64_t key_frame_count; int prior_key_frame_distance[KEY_FRAME_CONTEXT]; /* Current section per frame bandwidth target */ int per_frame_bandwidth; /* Average frame size target for clip */ int av_per_frame_bandwidth; /* Minimum allocation that should be used for any frame */ int min_frame_bandwidth; int inter_frame_target; double output_framerate; int64_t last_time_stamp_seen; int64_t last_end_time_stamp_seen; int64_t first_time_stamp_ever; int ni_av_qi; int ni_tot_qi; int ni_frames; int avg_frame_qindex; int64_t total_byte_count; int buffered_mode; double framerate; double ref_framerate; int64_t buffer_level; int64_t bits_off_target; int rolling_target_bits; int rolling_actual_bits; int long_rolling_target_bits; int long_rolling_actual_bits; int64_t total_actual_bits; int total_target_vs_actual; /* debug stats */ int worst_quality; int active_worst_quality; int best_quality; int active_best_quality; int cq_target_quality; int drop_frames_allowed; /* Are we permitted to drop frames? */ int drop_frame; /* Drop this frame? */ #if 0 /* disabled by -frewrite-includes */ #if defined(DROP_UNCODED_FRAMES) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 428 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" int drop_frame_count; #endif # 430 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" vp8_prob frame_coef_probs[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [ENTROPY_NODES]; char update_probs[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES]; unsigned int frame_branch_ct[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [ENTROPY_NODES][2]; int gfu_boost; int kf_boost; int last_boost; int target_bandwidth; /* bits per second */ struct vpx_codec_pkt_list *output_pkt_list; #if 0 /* disabled by -frewrite-includes */ #if 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 446 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* Experimental code for lagged and one pass */ ONEPASS_FRAMESTATS one_pass_frame_stats[MAX_LAG_BUFFERS]; int one_pass_frame_index; #endif # 450 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" int decimation_factor; int decimation_count; /* for real time encoding */ int avg_encode_time; /* microsecond */ int avg_pick_mode_time; /* microsecond */ int Speed; int compressor_speed; int auto_gold; int auto_adjust_gold_quantizer; int auto_worst_q; int cpu_used; int pass; int prob_intra_coded; int prob_last_coded; int prob_gf_coded; int prob_skip_false; int last_skip_false_probs[3]; int last_skip_probs_q[3]; int recent_ref_frame_usage[MAX_REF_FRAMES]; int this_frame_percent_intra; int last_frame_percent_intra; int ref_frame_flags; SPEED_FEATURES sf; /* Count ZEROMV on all reference frames. */ int zeromv_count; int lf_zeromv_pct; unsigned char *skin_map; unsigned char *segmentation_map; signed char segment_feature_data[MB_LVL_MAX][MAX_MB_SEGMENTS]; unsigned int segment_encode_breakout[MAX_MB_SEGMENTS]; unsigned char *active_map; unsigned int active_map_enabled; /* Video conferencing cyclic refresh mode flags. This is a mode * designed to clean up the background over time in live encoding * scenarious. It uses segmentation. */ int cyclic_refresh_mode_enabled; int cyclic_refresh_mode_max_mbs_perframe; int cyclic_refresh_mode_index; int cyclic_refresh_q; signed char *cyclic_refresh_map; // Count on how many (consecutive) times a macroblock uses ZER0MV_LAST. unsigned char *consec_zero_last; // Counter that is reset when a block is checked for a mode-bias against // ZEROMV_LASTREF. unsigned char *consec_zero_last_mvbias; // Frame counter for the temporal pattern. Counter is rest when the temporal // layers are changed dynamically (run-time change). unsigned int temporal_pattern_counter; // Temporal layer id. int temporal_layer_id; // Measure of average squared difference between source and denoised signal. int mse_source_denoised; int force_maxqp; int frames_since_last_drop_overshoot; int last_pred_err_mb; // GF update for 1 pass cbr. int gf_update_onepass_cbr; int gf_interval_onepass_cbr; int gf_noboost_onepass_cbr; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTITHREAD #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 528 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* multithread data */ vpx_atomic_int *mt_current_mb_col; int mt_current_mb_col_size; int mt_sync_range; vpx_atomic_int b_multi_threaded; int encoding_thread_count; int b_lpf_running; pthread_t *h_encoding_thread; pthread_t h_filter_thread; MB_ROW_COMP *mb_row_ei; ENCODETHREAD_DATA *en_thread_data; LPFTHREAD_DATA lpf_thread_data; /* events */ vp8_sem_t *h_event_start_encoding; vp8_sem_t *h_event_end_encoding; vp8_sem_t h_event_start_lpf; vp8_sem_t h_event_end_lpf; #endif # 549 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" TOKENLIST *tplist; unsigned int partition_sz[MAX_PARTITIONS]; unsigned char *partition_d[MAX_PARTITIONS]; unsigned char *partition_d_end[MAX_PARTITIONS]; fractional_mv_step_fp *find_fractional_mv_step; vp8_refining_search_fn_t refining_search_sad; vp8_diamond_search_fn_t diamond_search_sad; vp8_variance_fn_ptr_t fn_ptr[BLOCK_MAX_SEGMENTS]; uint64_t time_receive_data; uint64_t time_compress_data; uint64_t time_pick_lpf; uint64_t time_encode_mb_row; int base_skip_false_prob[128]; FRAME_CONTEXT lfc_n; /* last frame entropy */ FRAME_CONTEXT lfc_a; /* last alt ref entropy */ FRAME_CONTEXT lfc_g; /* last gold ref entropy */ struct twopass_rc { unsigned int section_intra_rating; double section_max_qfactor; unsigned int next_iiratio; unsigned int this_iiratio; FIRSTPASS_STATS total_stats; FIRSTPASS_STATS this_frame_stats; FIRSTPASS_STATS *stats_in, *stats_in_end, *stats_in_start; FIRSTPASS_STATS total_left_stats; int first_pass_done; int64_t bits_left; int64_t clip_bits_total; double avg_iiratio; double modified_error_total; double modified_error_used; double modified_error_left; double kf_intra_err_min; double gf_intra_err_min; int frames_to_key; int maxq_max_limit; int maxq_min_limit; int gf_decay_rate; int static_scene_max_gf_interval; int kf_bits; /* Remaining error from uncoded frames in a gf group. */ int gf_group_error_left; /* Projected total bits available for a key frame group of frames */ int64_t kf_group_bits; /* Error score of frames still to be coded in kf group */ int64_t kf_group_error_left; /* Projected Bits available for a group including 1 GF or ARF */ int64_t gf_group_bits; /* Bits for the golden frame or ARF */ int gf_bits; int alt_extra_bits; double est_max_qcorrection_factor; } twopass; #if 0 /* disabled by -frewrite-includes */ #if VP8_TEMPORAL_ALT_REF #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 609 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" YV12_BUFFER_CONFIG alt_ref_buffer; YV12_BUFFER_CONFIG *frames[MAX_LAG_BUFFERS]; int fixed_divide[512]; #endif # 613 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_INTERNAL_STATS #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 615 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" int count; double total_y; double total_u; double total_v; double total; double total_sq_error; double totalp_y; double totalp_u; double totalp_v; double totalp; double total_sq_error2; uint64_t bytes; double summed_quality; double summed_weights; unsigned int tot_recode_hits; int b_calculate_ssimg; #endif # 633 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" int b_calculate_psnr; /* Per MB activity measurement */ unsigned int activity_avg; unsigned int *mb_activity_map; /* Record of which MBs still refer to last golden frame either * directly or through 0,0 */ unsigned char *gf_active_flags; int gf_active_count; int output_partition; /* Store last frame's MV info for next frame MV prediction */ int_mv *lfmv; int *lf_ref_frame_sign_bias; int *lf_ref_frame; /* force next frame to intra when kf_auto says so */ int force_next_frame_intra; int droppable; int initial_width; int initial_height; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 661 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" VP8_DENOISER denoiser; #endif # 663 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* Coding layer state variables */ unsigned int current_layer; LAYER_CONTEXT layer_context[VPX_TS_MAX_LAYERS]; int64_t frames_in_layer[VPX_TS_MAX_LAYERS]; int64_t bytes_in_layer[VPX_TS_MAX_LAYERS]; double sum_psnr[VPX_TS_MAX_LAYERS]; double sum_psnr_p[VPX_TS_MAX_LAYERS]; double total_error2[VPX_TS_MAX_LAYERS]; double total_error2_p[VPX_TS_MAX_LAYERS]; double sum_ssim[VPX_TS_MAX_LAYERS]; double sum_weights[VPX_TS_MAX_LAYERS]; double total_ssimg_y_in_layer[VPX_TS_MAX_LAYERS]; double total_ssimg_u_in_layer[VPX_TS_MAX_LAYERS]; double total_ssimg_v_in_layer[VPX_TS_MAX_LAYERS]; double total_ssimg_all_in_layer[VPX_TS_MAX_LAYERS]; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTI_RES_ENCODING #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 683 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* Number of MBs per row at lower-resolution level */ int mr_low_res_mb_cols; /* Indicate if lower-res mv info is available */ unsigned char mr_low_res_mv_avail; #endif # 688 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* The frame number of each reference frames */ unsigned int current_ref_frames[MAX_REF_FRAMES]; // Closest reference frame to current frame. MV_REFERENCE_FRAME closest_reference_frame; struct rd_costs_struct { int mvcosts[2][MVvals + 1]; int mvsadcosts[2][MVfpvals + 1]; int mbmode_cost[2][MB_MODE_COUNT]; int intra_uv_mode_cost[2][MB_MODE_COUNT]; int bmode_costs[10][10][10]; int inter_bmode_costs[B_MODE_COUNT]; int token_costs[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; } rd_costs; // Use the static threshold from ROI settings. int use_roi_static_threshold; int ext_refresh_frame_flags_pending; // Always update correction factor used for rate control after each frame for // realtime encoding. int rt_always_update_correction_factor; // Flag to indicate frame may be dropped due to large expected overshoot, // and re-encoded on next frame at max_qp. int rt_drop_recode_on_overshoot; } VP8_COMP; void vp8_initialize_enc(void); void vp8_alloc_compressor_data(VP8_COMP *cpi); int vp8_reverse_trans(int x); void vp8_reset_temporal_layer_change(VP8_COMP *cpi, const VP8_CONFIG *oxcf, const int prev_num_layers); void vp8_init_temporal_layer_context(VP8_COMP *cpi, const VP8_CONFIG *oxcf, const int layer, double prev_layer_framerate); void vp8_update_layer_contexts(VP8_COMP *cpi); void vp8_save_layer_context(VP8_COMP *cpi); void vp8_restore_layer_context(VP8_COMP *cpi, const int layer); void vp8_new_framerate(VP8_COMP *cpi, double framerate); void vp8_loopfilter_frame(VP8_COMP *cpi, VP8_COMMON *cm); void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned char *dest_end, size_t *size); void vp8_tokenize_mb(VP8_COMP *, MACROBLOCK *, TOKENEXTRA **); void vp8_set_speed_features(VP8_COMP *cpi); int vp8_check_drop_buffer(VP8_COMP *cpi); #ifdef __cplusplus } // extern "C" #endif # 745 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #endif // VPX_VP8_ENCODER_ONYX_INT_H_ # 747 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #endif /* onyx_int.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h" 2 #ifdef __cplusplus extern "C" { #endif # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h" void vp8_encode_inter16x16(MACROBLOCK *x); void vp8_subtract_b(BLOCK *be, BLOCKD *bd, int pitch); void vp8_subtract_mbuv(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride); void vp8_subtract_mby(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride); void vp8_build_dcblock(MACROBLOCK *b); void vp8_transform_mb(MACROBLOCK *mb); void vp8_transform_mbuv(MACROBLOCK *x); void vp8_transform_intra_mby(MACROBLOCK *x); void vp8_optimize_mby(MACROBLOCK *x); void vp8_optimize_mbuv(MACROBLOCK *x); void vp8_encode_inter16x16y(MACROBLOCK *x); #ifdef __cplusplus } // extern "C" #endif # 39 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h" #endif // VPX_VP8_ENCODER_ENCODEMB_H_ # 41 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h" #endif /* encodemb.h expanded by -frewrite-includes */ # 25 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* quantize.h expanded by -frewrite-includes */ #include "vp8/encoder/quantize.h" #else /* quantize.h expanded by -frewrite-includes */ # 25 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/quantize.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_QUANTIZE_H_ #define VPX_VP8_ENCODER_QUANTIZE_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/quantize.h" struct VP8_COMP; struct macroblock; extern void vp8_quantize_mb(struct macroblock *x); extern void vp8_quantize_mby(struct macroblock *x); extern void vp8_quantize_mbuv(struct macroblock *x); extern void vp8_set_quantizer(struct VP8_COMP *cpi, int Q); extern void vp8cx_frame_init_quantizer(struct VP8_COMP *cpi); extern void vp8_update_zbin_extra(struct VP8_COMP *cpi, struct macroblock *x); extern void vp8cx_mb_init_quantizer(struct VP8_COMP *cpi, struct macroblock *x, int ok_to_skip); extern void vp8cx_init_quantizer(struct VP8_COMP *cpi); #ifdef __cplusplus } // extern "C" #endif # 33 "../../third_party/libvpx/source/libvpx/vp8/encoder/quantize.h" #endif // VPX_VP8_ENCODER_QUANTIZE_H_ # 35 "../../third_party/libvpx/source/libvpx/vp8/encoder/quantize.h" #endif /* quantize.h expanded by -frewrite-includes */ # 26 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/entropy.h" #endif /* expanded by -frewrite-includes */ # 26 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* threading.h expanded by -frewrite-includes */ #include "vp8/common/threading.h" #else /* threading.h expanded by -frewrite-includes */ # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_THREADING_H_ #define VPX_VP8_COMMON_THREADING_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #ifdef __cplusplus extern "C" { #endif # 19 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_OS_SUPPORT && CONFIG_MULTITHREAD #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !HAVE_PTHREAD_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" /* Win32 */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 25 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #else # 26 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" /* pthreads */ #ifdef __APPLE__ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 28 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 29 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 29 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 30 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 31 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 32 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 33 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #else # 34 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* semaphore.h expanded by -frewrite-includes */ #include #else /* semaphore.h expanded by -frewrite-includes */ # 34 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _SEMAPHORE_H #define _SEMAPHORE_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 __BEGIN_DECLS struct timespec; typedef struct { unsigned int count; #ifdef __LP64__ int __reserved[3]; #endif # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 } sem_t; #define SEM_FAILED __BIONIC_CAST(reinterpret_cast, sem_t*, 0) #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 30 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 int sem_clockwait(sem_t* _Nonnull __sem, clockid_t __clock, const struct timespec* _Nonnull __ts) __INTRODUCED_IN(30); #endif /* __ANDROID_API__ >= 30 */ # 52 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 int sem_destroy(sem_t* _Nonnull __sem); int sem_getvalue(sem_t* _Nonnull __sem, int* _Nonnull __value); int sem_init(sem_t* _Nonnull __sem, int __shared, unsigned int __value); int sem_post(sem_t* _Nonnull __sem); int sem_timedwait(sem_t* _Nonnull __sem, const struct timespec* _Nonnull __ts); /* * POSIX historically only supported using sem_timedwait() with CLOCK_REALTIME, however that is * typically inappropriate, since that clock can change dramatically, causing the timeout to either * expire earlier or much later than intended. This function is added to use a timespec based * on CLOCK_MONOTONIC that does not suffer from this issue. * Note that sem_clockwait() allows specifying an arbitrary clock and has superseded this * function. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 68 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 int sem_timedwait_monotonic_np(sem_t* _Nonnull __sem, const struct timespec* _Nonnull __ts) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 70 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 int sem_trywait(sem_t* _Nonnull __sem); int sem_wait(sem_t* _Nonnull __sem); /* These aren't actually implemented. */ sem_t* _Nullable sem_open(const char* _Nonnull __name, int _flags, ...); int sem_close(sem_t* _Nonnull __sem); int sem_unlink(const char* _Nonnull __name); __END_DECLS #endif # 82 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/semaphore.h" 3 4 #endif /* semaphore.h expanded by -frewrite-includes */ # 35 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" 2 #endif # 36 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #endif # 37 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" /* Synchronization macros: Win32 and Pthreads */ #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !HAVE_PTHREAD_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 40 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #define vp8_sem_t HANDLE #define vp8_sem_init(sem, pshared, value) \ (int)((*sem = CreateSemaphore(NULL, value, 32768, NULL)) == NULL) #define vp8_sem_wait(sem) \ (int)(WAIT_OBJECT_0 != WaitForSingleObject(*sem, INFINITE)) #define vp8_sem_post(sem) ReleaseSemaphore(*sem, 1, NULL) #define vp8_sem_destroy(sem) \ if (*sem) ((int)(CloseHandle(*sem)) == TRUE) #define thread_sleep(nms) Sleep(nms) #else # 51 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #ifdef __APPLE__ #define vp8_sem_t semaphore_t #define vp8_sem_init(sem, pshared, value) \ semaphore_create(mach_task_self(), sem, SYNC_POLICY_FIFO, value) #define vp8_sem_wait(sem) semaphore_wait(*sem) #define vp8_sem_post(sem) semaphore_signal(*sem) #define vp8_sem_destroy(sem) semaphore_destroy(mach_task_self(), *sem) #else # 60 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ #include #else /* errno.h expanded by -frewrite-includes */ # 60 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h" 3 4 /** * @file errno.h * @brief Standard C error handling. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ #include #else /* errno.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/errno.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ #include #else /* errno.h expanded by -frewrite-includes */ # 7 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/errno.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/errno.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ #include #else /* errno.h expanded by -frewrite-includes */ # 7 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/errno.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/errno.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _ASM_GENERIC_ERRNO_H #define _ASM_GENERIC_ERRNO_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno-base.h expanded by -frewrite-includes */ #include #else /* errno-base.h expanded by -frewrite-includes */ # 9 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/errno.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/errno-base.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _ASM_GENERIC_ERRNO_BASE_H #define _ASM_GENERIC_ERRNO_BASE_H #define EPERM 1 #define ENOENT 2 #define ESRCH 3 #define EINTR 4 #define EIO 5 #define ENXIO 6 #define E2BIG 7 #define ENOEXEC 8 #define EBADF 9 #define ECHILD 10 #define EAGAIN 11 #define ENOMEM 12 #define EACCES 13 #define EFAULT 14 #define ENOTBLK 15 #define EBUSY 16 #define EEXIST 17 #define EXDEV 18 #define ENODEV 19 #define ENOTDIR 20 #define EISDIR 21 #define EINVAL 22 #define ENFILE 23 #define EMFILE 24 #define ENOTTY 25 #define ETXTBSY 26 #define EFBIG 27 #define ENOSPC 28 #define ESPIPE 29 #define EROFS 30 #define EMLINK 31 #define EPIPE 32 #define EDOM 33 #define ERANGE 34 #endif # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/errno-base.h" 3 4 #endif /* errno-base.h expanded by -frewrite-includes */ # 10 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/errno.h" 2 3 4 #define EDEADLK 35 #define ENAMETOOLONG 36 #define ENOLCK 37 #define ENOSYS 38 #define ENOTEMPTY 39 #define ELOOP 40 #define EWOULDBLOCK EAGAIN #define ENOMSG 42 #define EIDRM 43 #define ECHRNG 44 #define EL2NSYNC 45 #define EL3HLT 46 #define EL3RST 47 #define ELNRNG 48 #define EUNATCH 49 #define ENOCSI 50 #define EL2HLT 51 #define EBADE 52 #define EBADR 53 #define EXFULL 54 #define ENOANO 55 #define EBADRQC 56 #define EBADSLT 57 #define EDEADLOCK EDEADLK #define EBFONT 59 #define ENOSTR 60 #define ENODATA 61 #define ETIME 62 #define ENOSR 63 #define ENONET 64 #define ENOPKG 65 #define EREMOTE 66 #define ENOLINK 67 #define EADV 68 #define ESRMNT 69 #define ECOMM 70 #define EPROTO 71 #define EMULTIHOP 72 #define EDOTDOT 73 #define EBADMSG 74 #define EOVERFLOW 75 #define ENOTUNIQ 76 #define EBADFD 77 #define EREMCHG 78 #define ELIBACC 79 #define ELIBBAD 80 #define ELIBSCN 81 #define ELIBMAX 82 #define ELIBEXEC 83 #define EILSEQ 84 #define ERESTART 85 #define ESTRPIPE 86 #define EUSERS 87 #define ENOTSOCK 88 #define EDESTADDRREQ 89 #define EMSGSIZE 90 #define EPROTOTYPE 91 #define ENOPROTOOPT 92 #define EPROTONOSUPPORT 93 #define ESOCKTNOSUPPORT 94 #define EOPNOTSUPP 95 #define EPFNOSUPPORT 96 #define EAFNOSUPPORT 97 #define EADDRINUSE 98 #define EADDRNOTAVAIL 99 #define ENETDOWN 100 #define ENETUNREACH 101 #define ENETRESET 102 #define ECONNABORTED 103 #define ECONNRESET 104 #define ENOBUFS 105 #define EISCONN 106 #define ENOTCONN 107 #define ESHUTDOWN 108 #define ETOOMANYREFS 109 #define ETIMEDOUT 110 #define ECONNREFUSED 111 #define EHOSTDOWN 112 #define EHOSTUNREACH 113 #define EALREADY 114 #define EINPROGRESS 115 #define ESTALE 116 #define EUCLEAN 117 #define ENOTNAM 118 #define ENAVAIL 119 #define EISNAM 120 #define EREMOTEIO 121 #define EDQUOT 122 #define ENOMEDIUM 123 #define EMEDIUMTYPE 124 #define ECANCELED 125 #define ENOKEY 126 #define EKEYEXPIRED 127 #define EKEYREVOKED 128 #define EKEYREJECTED 129 #define EOWNERDEAD 130 #define ENOTRECOVERABLE 131 #define ERFKILL 132 #define EHWPOISON 133 #endif # 110 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/asm-generic/errno.h" 3 4 #endif /* errno.h expanded by -frewrite-includes */ # 8 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi/asm/errno.h" 2 3 4 #endif /* errno.h expanded by -frewrite-includes */ # 8 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/errno.h" 2 3 4 #endif /* errno.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h" 2 3 4 __BEGIN_DECLS #ifndef ENOTSUP /** On Linux, ENOTSUP and EOPNOTSUPP are the same despite POSIX saying they should be distinct. */ #define ENOTSUP EOPNOTSUPP #endif # 45 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h" 3 4 /** * Returns the address of the calling thread's `errno` storage. * Non-portable and should not be used directly. Use `errno` instead. * * @private */ int* _Nonnull __errno(void) __attribute_const__; /** * [errno(3)](http://man7.org/linux/man-pages/man3/errno.3.html) is the last error on the calling * thread. */ #define errno (*__errno()) __END_DECLS #endif /* errno.h expanded by -frewrite-includes */ # 61 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* unistd.h expanded by -frewrite-includes */ #include #else /* unistd.h expanded by -frewrite-includes */ # 61 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 4 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 4 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* fcntl.h expanded by -frewrite-includes */ #include #else /* fcntl.h expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/fcntl.h" 1 3 4 /* * Copyright (C) 2016 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/fcntl.h" 3 4 /** * @file bits/fcntl.h * @brief The fcntl() function. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/fcntl.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/fcntl.h" 3 4 __BEGIN_DECLS /** * [fcntl(3)](http://man7.org/linux/man-pages/man2/fcntl.2.html) performs various operations * on file descriptors. * * The return value depends on the operation. */ int fcntl(int __fd, int __op, ...); __END_DECLS #endif /* fcntl.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* getentropy.h expanded by -frewrite-includes */ #include #else /* getentropy.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getentropy.h" 1 3 4 /* * Copyright (C) 2023 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getentropy.h" 3 4 /** * @file bits/getentropy.h * @brief The getentropy() function. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getentropy.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getentropy.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getentropy.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getentropy.h" 3 4 __BEGIN_DECLS /** * [getentropy(3)](http://man7.org/linux/man-pages/man3/getentropy.3.html) fills the given buffer * with random bytes. * * Returns 0 on success, and returns -1 and sets `errno` on failure. * * Available since API level 28. * * See also arc4random_buf() which is available in all API levels. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getentropy.h" 3 4 int getentropy(void* _Nonnull __buffer, size_t __buffer_size) __wur __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getentropy.h" 3 4 __END_DECLS #endif /* getentropy.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* getopt.h expanded by -frewrite-includes */ #include #else /* getopt.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getopt.h" 1 3 4 /* * Copyright (C) 2016 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getopt.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getopt.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/getopt.h" 3 4 __BEGIN_DECLS /** * [getopt(3)](http://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options. * * Returns the next option character on success, returns -1 if all options have been parsed, and * returns `'?'` on error. */ int getopt(int __argc, char* const _Nonnull __argv[_Nullable], const char* _Nonnull __options); /** * Points to the text of the corresponding value for options that take an argument. */ extern char* _Nullable optarg; /** * The index of the next element to be processed. * On Android, callers should set `optreset = 1` rather than trying to reset `optind` to * scan a new argument vector. */ extern int optind; /** * Determines whether getopt() outputs error messages. * Callers should set this to `0` to disable error messages. * Defaults to non-zero. */ extern int opterr; /** * The last unrecognized option character, valid when getopt() returns `'?'`. */ extern int optopt; __END_DECLS #endif /* getopt.h expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* ioctl.h expanded by -frewrite-includes */ #include #else /* ioctl.h expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/ioctl.h" 1 3 4 /* * Copyright (C) 2016 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/ioctl.h" 3 4 /** * @file bits/ioctl.h * @brief The ioctl() function. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/ioctl.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/ioctl.h" 3 4 __BEGIN_DECLS /** * [ioctl(2)](http://man7.org/linux/man-pages/man2/ioctl.2.html) operates on device files. */ int ioctl(int __fd, int __op, ...); /* * Work around unsigned -> signed conversion warnings: many common ioctl * constants are unsigned. * * Since this workaround introduces an overload to ioctl, it's possible that it * will break existing code that takes the address of ioctl. If such a breakage * occurs, you can work around it by either: * - specifying a concrete, correct type for ioctl (whether it be through a cast * in `(int (*)(int, int, ...))ioctl`, creating a temporary variable with the * type of the ioctl you prefer, ...), or * - defining BIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD, which will make the * overloading go away. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(BIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 59 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/ioctl.h" 3 4 /* enable_if(1) just exists to break overloading ties. */ int ioctl(int __fd, unsigned __op, ...) __overloadable __enable_if(1, "") __RENAME(ioctl); #endif # 62 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/ioctl.h" 3 4 __END_DECLS #endif /* ioctl.h expanded by -frewrite-includes */ # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* lockf.h expanded by -frewrite-includes */ #include #else /* lockf.h expanded by -frewrite-includes */ # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/lockf.h" 1 3 4 /* * Copyright (C) 2016 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/lockf.h" 3 4 /** * @file bits/lockf.h * @brief The lockf() function. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/lockf.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/lockf.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/lockf.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/lockf.h" 3 4 /** lockf() command to unlock a section of a file. */ #define F_ULOCK 0 /** lockf() command to block until it locks a section of a file. */ #define F_LOCK 1 /** lockf() command to try to lock a section of a file. */ #define F_TLOCK 2 /** lockf() command to test whether a section of a file is unlocked (or locked by the caller). */ #define F_TEST 3 __BEGIN_DECLS /** * [lockf(3)](http://man7.org/linux/man-pages/man3/lockf.3.html) manipulates POSIX file locks. * * Returns 0 on success, and returns -1 and sets `errno` on failure. * * Available since API level 24. * * See also flock(). */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 61 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/lockf.h" 3 4 int lockf(int __fd, int __op, off_t __length) __RENAME_IF_FILE_OFFSET64(lockf64) __INTRODUCED_IN(24); /** * Like lockf() but allows using a 64-bit length * even from a 32-bit process without `_FILE_OFFSET_BITS=64`. */ int lockf64(int __fd, int __op, off64_t __length) __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 69 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/lockf.h" 3 4 __END_DECLS #endif /* lockf.h expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sysconf.h expanded by -frewrite-includes */ #include #else /* sysconf.h expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/sysconf.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/sysconf.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/sysconf.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/sysconf.h" 3 4 /** sysconf() query for the maximum number of bytes of exec() arguments. */ #define _SC_ARG_MAX 0x0000 /** sysconf() query for bc(1) behavior equivalent to _POSIX2_BC_BASE_MAX. */ #define _SC_BC_BASE_MAX 0x0001 /** sysconf() query for bc(1) behavior equivalent to _POSIX2_BC_DIM_MAX. */ #define _SC_BC_DIM_MAX 0x0002 /** sysconf() query for bc(1) behavior equivalent to _POSIX2_BC_SCALE_MAX. */ #define _SC_BC_SCALE_MAX 0x0003 /** sysconf() query for bc(1) behavior equivalent to _POSIX2_BC_STRING_MAX. */ #define _SC_BC_STRING_MAX 0x0004 /** sysconf() query equivalent to RLIMIT_NPROC. */ #define _SC_CHILD_MAX 0x0005 /** sysconf() query equivalent to AT_CLKTCK. */ #define _SC_CLK_TCK 0x0006 /** sysconf() query for collation behavior equivalent to _POSIX2_COLL_WEIGHTS_MAX. */ #define _SC_COLL_WEIGHTS_MAX 0x0007 /** sysconf() query for expr(1) behavior equivalent to _POSIX2_EXPR_NEST_MAX. */ #define _SC_EXPR_NEST_MAX 0x0008 /** sysconf() query for command-line tool behavior equivalent to _POSIX2_LINE_MAX. */ #define _SC_LINE_MAX 0x0009 /** sysconf() query equivalent to NGROUPS_MAX. */ #define _SC_NGROUPS_MAX 0x000a /** sysconf() query equivalent to RLIMIT_NOFILE. */ #define _SC_OPEN_MAX 0x000b /** sysconf() query equivalent to PASS_MAX. */ #define _SC_PASS_MAX 0x000c /** sysconf() query equivalent to _POSIX2_C_BIND. */ #define _SC_2_C_BIND 0x000d /** sysconf() query equivalent to _POSIX2_C_DEV. */ #define _SC_2_C_DEV 0x000e /** Obsolescent in POSIX.1-2008. */ #define _SC_2_C_VERSION 0x000f /** sysconf() query equivalent to _POSIX2_CHAR_TERM. */ #define _SC_2_CHAR_TERM 0x0010 /** sysconf() query equivalent to _POSIX2_FORT_DEV. */ #define _SC_2_FORT_DEV 0x0011 /** sysconf() query equivalent to _POSIX2_FORT_RUN. */ #define _SC_2_FORT_RUN 0x0012 /** sysconf() query equivalent to _POSIX2_LOCALEDEF. */ #define _SC_2_LOCALEDEF 0x0013 /** sysconf() query equivalent to _POSIX2_SW_DEV. */ #define _SC_2_SW_DEV 0x0014 /** sysconf() query equivalent to _POSIX2_UPE. */ #define _SC_2_UPE 0x0015 /** sysconf() query equivalent to _POSIX2_VERSION. */ #define _SC_2_VERSION 0x0016 /** sysconf() query equivalent to _POSIX_JOB_CONTROL. */ #define _SC_JOB_CONTROL 0x0017 /** sysconf() query equivalent to _POSIX_SAVED_IDS. */ #define _SC_SAVED_IDS 0x0018 /** sysconf() query equivalent to _POSIX_VERSION. */ #define _SC_VERSION 0x0019 /** sysconf() query equivalent to _POSIX_RE_DUP_MAX. */ #define _SC_RE_DUP_MAX 0x001a /** sysconf() query equivalent to FOPEN_MAX. */ #define _SC_STREAM_MAX 0x001b /** sysconf() query equivalent to _POSIX_TZNAME_MAX. */ #define _SC_TZNAME_MAX 0x001c /** sysconf() query equivalent to _XOPEN_CRYPT. */ #define _SC_XOPEN_CRYPT 0x001d /** sysconf() query equivalent to _XOPEN_ENH_I18N. */ #define _SC_XOPEN_ENH_I18N 0x001e /** sysconf() query equivalent to _XOPEN_SHM. */ #define _SC_XOPEN_SHM 0x001f /** sysconf() query equivalent to _XOPEN_VERSION. */ #define _SC_XOPEN_VERSION 0x0020 /** Obsolescent in POSIX.1-2008. */ #define _SC_XOPEN_XCU_VERSION 0x0021 /** sysconf() query equivalent to _XOPEN_REALTIME. */ #define _SC_XOPEN_REALTIME 0x0022 /** sysconf() query equivalent to _XOPEN_REALTIME_THREADS. */ #define _SC_XOPEN_REALTIME_THREADS 0x0023 /** sysconf() query equivalent to _XOPEN_LEGACY. */ #define _SC_XOPEN_LEGACY 0x0024 /** sysconf() query for the maximum number of atexit() handlers. Unlimited on Android. */ #define _SC_ATEXIT_MAX 0x0025 /** sysconf() query equivalent to IOV_MAX. */ #define _SC_IOV_MAX 0x0026 /** Same as _SC_IOV_MAX. */ #define _SC_UIO_MAXIOV _SC_IOV_MAX /** Same as _SC_PAGE_SIZE. */ #define _SC_PAGESIZE 0x0027 /** sysconf() query equivalent to getpagesize(). */ #define _SC_PAGE_SIZE 0x0028 /** sysconf() query equivalent to _XOPEN_UNIX. */ #define _SC_XOPEN_UNIX 0x0029 /** Obsolescent in POSIX.1-2008. */ #define _SC_XBS5_ILP32_OFF32 0x002a /** Obsolescent in POSIX.1-2008. */ #define _SC_XBS5_ILP32_OFFBIG 0x002b /** Obsolescent in POSIX.1-2008. */ #define _SC_XBS5_LP64_OFF64 0x002c /** Obsolescent in POSIX.1-2008. */ #define _SC_XBS5_LPBIG_OFFBIG 0x002d /** sysconf() query equivalent to _POSIX_AIO_LISTIO_MAX. */ #define _SC_AIO_LISTIO_MAX 0x002e /** sysconf() query equivalent to _POSIX_AIO_MAX. */ #define _SC_AIO_MAX 0x002f /** Unimplemented on Android. */ #define _SC_AIO_PRIO_DELTA_MAX 0x0030 /** sysconf() query equivalent to _POSIX_DELAYTIMER_MAX. */ #define _SC_DELAYTIMER_MAX 0x0031 /** sysconf() query equivalent to _POSIX_MQ_OPEN_MAX. */ #define _SC_MQ_OPEN_MAX 0x0032 /** sysconf() query equivalent to _POSIX_MQ_PRIO_MAX. */ #define _SC_MQ_PRIO_MAX 0x0033 /** sysconf() query equivalent to RTSIG_MAX. Constant on Android. */ #define _SC_RTSIG_MAX 0x0034 /** sysconf() query equivalent to _POSIX_SEM_NSEMS_MAX. Constant on Android. */ #define _SC_SEM_NSEMS_MAX 0x0035 /** sysconf() query equivalent to SEM_VALUE_MAX. Constant on Android. */ #define _SC_SEM_VALUE_MAX 0x0036 /** sysconf() query equivalent to _POSIX_SIGQUEUE_MAX. */ #define _SC_SIGQUEUE_MAX 0x0037 /** sysconf() query equivalent to _POSIX_TIMER_MAX. */ #define _SC_TIMER_MAX 0x0038 /** sysconf() query equivalent to _POSIX_ASYNCHRONOUS_IO. */ #define _SC_ASYNCHRONOUS_IO 0x0039 /** sysconf() query equivalent to _POSIX_FSYNC. */ #define _SC_FSYNC 0x003a /** sysconf() query equivalent to _POSIX_MAPPED_FILES. */ #define _SC_MAPPED_FILES 0x003b /** sysconf() query equivalent to _POSIX_MEMLOCK. */ #define _SC_MEMLOCK 0x003c /** sysconf() query equivalent to _POSIX_MEMLOCK_RANGE. */ #define _SC_MEMLOCK_RANGE 0x003d /** sysconf() query equivalent to _POSIX_MEMORY_PROTECTION. */ #define _SC_MEMORY_PROTECTION 0x003e /** sysconf() query equivalent to _POSIX_MESSAGE_PASSING. */ #define _SC_MESSAGE_PASSING 0x003f /** sysconf() query equivalent to _POSIX_PRIORITIZED_IO. */ #define _SC_PRIORITIZED_IO 0x0040 /** sysconf() query equivalent to _POSIX_PRIORITY_SCHEDULING. */ #define _SC_PRIORITY_SCHEDULING 0x0041 /** sysconf() query equivalent to _POSIX_REALTIME_SIGNALS. */ #define _SC_REALTIME_SIGNALS 0x0042 /** sysconf() query equivalent to _POSIX_SEMAPHORES. */ #define _SC_SEMAPHORES 0x0043 /** sysconf() query equivalent to _POSIX_SHARED_MEMORY_OBJECTS. */ #define _SC_SHARED_MEMORY_OBJECTS 0x0044 /** sysconf() query equivalent to _POSIX_SYNCHRONIZED_IO. */ #define _SC_SYNCHRONIZED_IO 0x0045 /** sysconf() query equivalent to _POSIX_TIMERS. */ #define _SC_TIMERS 0x0046 /** sysconf() query for an initial size for getgrgid_r() and getgrnam_r() buffers. */ #define _SC_GETGR_R_SIZE_MAX 0x0047 /** sysconf() query for an initial size for getpwuid_r() and getpwnam_r() buffers. */ #define _SC_GETPW_R_SIZE_MAX 0x0048 /** sysconf() query equivalent to LOGIN_NAME_MAX. */ #define _SC_LOGIN_NAME_MAX 0x0049 /** sysconf() query equivalent to PTHREAD_DESTRUCTOR_ITERATIONS. */ #define _SC_THREAD_DESTRUCTOR_ITERATIONS 0x004a /** sysconf() query equivalent to PTHREAD_KEYS_MAX. */ #define _SC_THREAD_KEYS_MAX 0x004b /** sysconf() query equivalent to PTHREAD_STACK_MIN. */ #define _SC_THREAD_STACK_MIN 0x004c /** sysconf() query for a maximum number of threads. Unlimited on Android. */ #define _SC_THREAD_THREADS_MAX 0x004d /** sysconf() query equivalent to TTY_NAME_MAX. */ #define _SC_TTY_NAME_MAX 0x004e /** sysconf() query equivalent to _POSIX_THREADS. */ #define _SC_THREADS 0x004f /** sysconf() query equivalent to _POSIX_THREAD_ATTR_STACKADDR. */ #define _SC_THREAD_ATTR_STACKADDR 0x0050 /** sysconf() query equivalent to _POSIX_THREAD_ATTR_STACKSIZE. */ #define _SC_THREAD_ATTR_STACKSIZE 0x0051 /** sysconf() query equivalent to _POSIX_THREAD_PRIORITY_SCHEDULING. */ #define _SC_THREAD_PRIORITY_SCHEDULING 0x0052 /** sysconf() query equivalent to _POSIX_THREAD_PRIO_INHERIT. */ #define _SC_THREAD_PRIO_INHERIT 0x0053 /** sysconf() query equivalent to _POSIX_THREAD_PRIO_PROTECT. */ #define _SC_THREAD_PRIO_PROTECT 0x0054 /** sysconf() query equivalent to _POSIX_THREAD_SAFE_FUNCTIONS. */ #define _SC_THREAD_SAFE_FUNCTIONS 0x0055 /** sysconf() query equivalent to get_nprocs_conf(). */ #define _SC_NPROCESSORS_CONF 0x0060 /** sysconf() query equivalent to get_nprocs(). */ #define _SC_NPROCESSORS_ONLN 0x0061 /** sysconf() query equivalent to get_phys_pages(). */ #define _SC_PHYS_PAGES 0x0062 /** sysconf() query equivalent to get_avphys_pages(). */ #define _SC_AVPHYS_PAGES 0x0063 /** sysconf() query equivalent to _POSIX_MONOTONIC_CLOCK. */ #define _SC_MONOTONIC_CLOCK 0x0064 /** Obsolescent in POSIX.1-2008. */ #define _SC_2_PBS 0x0065 /** Obsolescent in POSIX.1-2008. */ #define _SC_2_PBS_ACCOUNTING 0x0066 /** Obsolescent in POSIX.1-2008. */ #define _SC_2_PBS_CHECKPOINT 0x0067 /** Obsolescent in POSIX.1-2008. */ #define _SC_2_PBS_LOCATE 0x0068 /** Obsolescent in POSIX.1-2008. */ #define _SC_2_PBS_MESSAGE 0x0069 /** Obsolescent in POSIX.1-2008. */ #define _SC_2_PBS_TRACK 0x006a /** sysconf() query equivalent to _POSIX_ADVISORY_INFO. */ #define _SC_ADVISORY_INFO 0x006b /** sysconf() query equivalent to _POSIX_BARRIERS. */ #define _SC_BARRIERS 0x006c /** sysconf() query equivalent to _POSIX_CLOCK_SELECTION. */ #define _SC_CLOCK_SELECTION 0x006d /** sysconf() query equivalent to _POSIX_CPUTIME. */ #define _SC_CPUTIME 0x006e /** sysconf() query equivalent to _POSIX_HOST_NAME_MAX. */ #define _SC_HOST_NAME_MAX 0x006f /** sysconf() query equivalent to _POSIX_IPV6. */ #define _SC_IPV6 0x0070 /** sysconf() query equivalent to _POSIX_RAW_SOCKETS. */ #define _SC_RAW_SOCKETS 0x0071 /** sysconf() query equivalent to _POSIX_READER_WRITER_LOCKS. */ #define _SC_READER_WRITER_LOCKS 0x0072 /** sysconf() query equivalent to _POSIX_REGEXP. */ #define _SC_REGEXP 0x0073 /** sysconf() query equivalent to _POSIX_SHELL. */ #define _SC_SHELL 0x0074 /** sysconf() query equivalent to _POSIX_SPAWN. */ #define _SC_SPAWN 0x0075 /** sysconf() query equivalent to _POSIX_SPIN_LOCKS. */ #define _SC_SPIN_LOCKS 0x0076 /** sysconf() query equivalent to _POSIX_SPORADIC_SERVER. */ #define _SC_SPORADIC_SERVER 0x0077 /** sysconf() query equivalent to _POSIX_SS_REPL_MAX. */ #define _SC_SS_REPL_MAX 0x0078 /** sysconf() query equivalent to _POSIX_SYMLOOP_MAX. */ #define _SC_SYMLOOP_MAX 0x0079 /** sysconf() query equivalent to _POSIX_THREAD_CPUTIME. */ #define _SC_THREAD_CPUTIME 0x007a /** sysconf() query equivalent to _POSIX_THREAD_PROCESS_SHARED. */ #define _SC_THREAD_PROCESS_SHARED 0x007b /** sysconf() query equivalent to _POSIX_THREAD_ROBUST_PRIO_INHERIT. */ #define _SC_THREAD_ROBUST_PRIO_INHERIT 0x007c /** sysconf() query equivalent to _POSIX_THREAD_ROBUST_PRIO_PROTECT. */ #define _SC_THREAD_ROBUST_PRIO_PROTECT 0x007d /** sysconf() query equivalent to _POSIX_THREAD_SPORADIC_SERVER. */ #define _SC_THREAD_SPORADIC_SERVER 0x007e /** sysconf() query equivalent to _POSIX_TIMEOUTS. */ #define _SC_TIMEOUTS 0x007f /** Unimplemented. */ #define _SC_TRACE 0x0080 /** Unimplemented. */ #define _SC_TRACE_EVENT_FILTER 0x0081 /** Unimplemented. */ #define _SC_TRACE_EVENT_NAME_MAX 0x0082 /** Unimplemented. */ #define _SC_TRACE_INHERIT 0x0083 /** Unimplemented. */ #define _SC_TRACE_LOG 0x0084 /** Unimplemented. */ #define _SC_TRACE_NAME_MAX 0x0085 /** Unimplemented. */ #define _SC_TRACE_SYS_MAX 0x0086 /** Unimplemented. */ #define _SC_TRACE_USER_EVENT_MAX 0x0087 /** sysconf() query equivalent to _POSIX_TYPED_MEMORY_OBJECTS. */ #define _SC_TYPED_MEMORY_OBJECTS 0x0088 /** sysconf() query equivalent to _POSIX_V7_ILP32_OFF32. */ #define _SC_V7_ILP32_OFF32 0x0089 /** sysconf() query equivalent to _POSIX_V7_ILP32_OFFBIG. */ #define _SC_V7_ILP32_OFFBIG 0x008a /** sysconf() query equivalent to _POSIX_V7_ILP64_OFF64. */ #define _SC_V7_LP64_OFF64 0x008b /** sysconf() query equivalent to _POSIX_V7_ILP64_OFFBIG. */ #define _SC_V7_LPBIG_OFFBIG 0x008c /** Unimplemented. */ #define _SC_XOPEN_STREAMS 0x008d /** Meaningless in Android, unsupported in every other libc (but defined by POSIX). */ #define _SC_XOPEN_UUCP 0x008e /** sysconf() query for the L1 instruction cache size. Not available on all architectures. */ #define _SC_LEVEL1_ICACHE_SIZE 0x008f /** sysconf() query for the L1 instruction cache associativity. Not available on all architectures. */ #define _SC_LEVEL1_ICACHE_ASSOC 0x0090 /** sysconf() query for the L1 instruction cache line size. Not available on all architectures. */ #define _SC_LEVEL1_ICACHE_LINESIZE 0x0091 /** sysconf() query for the L1 data cache size. Not available on all architectures. */ #define _SC_LEVEL1_DCACHE_SIZE 0x0092 /** sysconf() query for the L1 data cache associativity. Not available on all architectures. */ #define _SC_LEVEL1_DCACHE_ASSOC 0x0093 /** sysconf() query for the L1 data cache line size. Not available on all architectures. */ #define _SC_LEVEL1_DCACHE_LINESIZE 0x0094 /** sysconf() query for the L2 cache size. Not available on all architectures. */ #define _SC_LEVEL2_CACHE_SIZE 0x0095 /** sysconf() query for the L2 cache associativity. Not available on all architectures. */ #define _SC_LEVEL2_CACHE_ASSOC 0x0096 /** sysconf() query for the L2 cache line size. Not available on all architectures. */ #define _SC_LEVEL2_CACHE_LINESIZE 0x0097 /** sysconf() query for the L3 cache size. Not available on all architectures. */ #define _SC_LEVEL3_CACHE_SIZE 0x0098 /** sysconf() query for the L3 cache associativity. Not available on all architectures. */ #define _SC_LEVEL3_CACHE_ASSOC 0x0099 /** sysconf() query for the L3 cache line size. Not available on all architectures. */ #define _SC_LEVEL3_CACHE_LINESIZE 0x009a /** sysconf() query for the L4 cache size. Not available on all architectures. */ #define _SC_LEVEL4_CACHE_SIZE 0x009b /** sysconf() query for the L4 cache associativity. Not available on all architectures. */ #define _SC_LEVEL4_CACHE_ASSOC 0x009c /** sysconf() query for the L4 cache line size. Not available on all architectures. */ #define _SC_LEVEL4_CACHE_LINESIZE 0x009d __BEGIN_DECLS /** * [sysconf(3)](https://man7.org/linux/man-pages/man3/sysconf.3.html) * gets system configuration at runtime, corresponding to the given * `_SC_` constant. See the man page for details on how to interpret * the results. * * For `_SC_` constants where an equivalent is given, it's cheaper on Android * to go straight to that function call --- sysconf() is just a multiplexer. * This may not be true on other systems, and other systems may not support the * direct function, so sysconf() can be useful for portability, though despite * POSIX's best efforts, the exact set of constants that return useful results * will also vary by system. */ long sysconf(int __name); __END_DECLS #endif /* sysconf.h expanded by -frewrite-includes */ # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 2 3 4 __BEGIN_DECLS #define STDIN_FILENO 0 #define STDOUT_FILENO 1 #define STDERR_FILENO 2 #define F_OK 0 #define X_OK 1 #define W_OK 2 #define R_OK 4 #define _PC_FILESIZEBITS 0 #define _PC_LINK_MAX 1 #define _PC_MAX_CANON 2 #define _PC_MAX_INPUT 3 #define _PC_NAME_MAX 4 #define _PC_PATH_MAX 5 #define _PC_PIPE_BUF 6 #define _PC_2_SYMLINKS 7 #define _PC_ALLOC_SIZE_MIN 8 #define _PC_REC_INCR_XFER_SIZE 9 #define _PC_REC_MAX_XFER_SIZE 10 #define _PC_REC_MIN_XFER_SIZE 11 #define _PC_REC_XFER_ALIGN 12 #define _PC_SYMLINK_MAX 13 #define _PC_CHOWN_RESTRICTED 14 #define _PC_NO_TRUNC 15 #define _PC_VDISABLE 16 #define _PC_ASYNC_IO 17 #define _PC_PRIO_IO 18 #define _PC_SYNC_IO 19 extern char* _Nullable * _Nullable environ; __noreturn void _exit(int __status); /** * [fork(2)](http://man7.org/linux/man-pages/man2/fork.2.html) creates a new * process. fork() runs any handlers set by pthread_atfork(). * * Returns 0 in the child, the pid of the child in the parent, * and returns -1 and sets `errno` on failure. */ pid_t fork(void); /** * _Fork() creates a new process. _Fork() differs from fork() in that it does * not run any handlers set by pthread_atfork(). In addition to any user-defined * ones, bionic uses pthread_atfork() handlers to ensure consistency of its own * state, so the child should only call * [POSIX async-safe](https://man7.org/linux/man-pages/man7/signal-safety.7.html) * functions. * * Returns 0 in the child, the pid of the child in the parent, * and returns -1 and sets `errno` on failure. * * Available since API level 35. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 35 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 105 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 pid_t _Fork(void) __INTRODUCED_IN(35); #endif /* __ANDROID_API__ >= 35 */ # 107 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 /** * [vfork(2)](http://man7.org/linux/man-pages/man2/vfork.2.html) creates a new * process. vfork() differs from fork() in that it does not run any handlers * set by pthread_atfork(), and the parent is suspended until the child calls * exec() or exits. * * Returns 0 in the child, the pid of the child in the parent, * and returns -1 and sets `errno` on failure. */ pid_t vfork(void) __returns_twice; /** * [getpid(2)](http://man7.org/linux/man-pages/man2/getpid.2.html) returns * the caller's process ID. * * Returns the caller's process ID. */ pid_t getpid(void); /** * [gettid(2)](http://man7.org/linux/man-pages/man2/gettid.2.html) returns * the caller's thread ID. * * Returns the caller's thread ID. */ pid_t gettid(void); pid_t getpgid(pid_t __pid); int setpgid(pid_t __pid, pid_t __pgid); pid_t getppid(void); pid_t getpgrp(void); int setpgrp(void); pid_t getsid(pid_t __pid); pid_t setsid(void); int execv(const char* _Nonnull __path, char* _Nullable const* _Nullable __argv); int execvp(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv); int execvpe(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp); int execve(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp); int execl(const char* _Nonnull __path, const char* _Nullable __arg0, ...) __attribute__((__sentinel__)); int execlp(const char* _Nonnull __file, const char* _Nullable __arg0, ...) __attribute__((__sentinel__)); int execle(const char* _Nonnull __path, const char* _Nullable __arg0, ... /*, char* const* __envp */) __attribute__((__sentinel__(1))); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 154 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int fexecve(int __fd, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 156 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int nice(int __incr); /** * [setegid(2)](http://man7.org/linux/man-pages/man2/setegid.2.html) sets * the effective group ID. * * On Android, this function only affects the calling thread, not all threads * in the process. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int setegid(gid_t __gid); /** * [seteuid(2)](http://man7.org/linux/man-pages/man2/seteuid.2.html) sets * the effective user ID. * * On Android, this function only affects the calling thread, not all threads * in the process. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int seteuid(uid_t __uid); /** * [setgid(2)](http://man7.org/linux/man-pages/man2/setgid.2.html) sets * the group ID. * * On Android, this function only affects the calling thread, not all threads * in the process. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int setgid(gid_t __gid); /** * [setregid(2)](http://man7.org/linux/man-pages/man2/setregid.2.html) sets * the real and effective group IDs (use -1 to leave an ID unchanged). * * On Android, this function only affects the calling thread, not all threads * in the process. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int setregid(gid_t __rgid, gid_t __egid); /** * [setresgid(2)](http://man7.org/linux/man-pages/man2/setresgid.2.html) sets * the real, effective, and saved group IDs (use -1 to leave an ID unchanged). * * On Android, this function only affects the calling thread, not all threads * in the process. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int setresgid(gid_t __rgid, gid_t __egid, gid_t __sgid); /** * [setresuid(2)](http://man7.org/linux/man-pages/man2/setresuid.2.html) sets * the real, effective, and saved user IDs (use -1 to leave an ID unchanged). * * On Android, this function only affects the calling thread, not all threads * in the process. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int setresuid(uid_t __ruid, uid_t __euid, uid_t __suid); /** * [setreuid(2)](http://man7.org/linux/man-pages/man2/setreuid.2.html) sets * the real and effective group IDs (use -1 to leave an ID unchanged). * * On Android, this function only affects the calling thread, not all threads * in the process. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int setreuid(uid_t __ruid, uid_t __euid); /** * [setuid(2)](http://man7.org/linux/man-pages/man2/setuid.2.html) sets * the user ID. * * On Android, this function only affects the calling thread, not all threads * in the process. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ int setuid(uid_t __uid); uid_t getuid(void); uid_t geteuid(void); gid_t getgid(void); gid_t getegid(void); int getgroups(int __size, gid_t* _Nullable __list); int setgroups(size_t __size, const gid_t* _Nullable __list); int getresuid(uid_t* _Nonnull __ruid, uid_t* _Nonnull __euid, uid_t* _Nonnull __suid); int getresgid(gid_t* _Nonnull __rgid, gid_t* _Nonnull __egid, gid_t* _Nonnull __sgid); char* _Nullable getlogin(void); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 259 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int getlogin_r(char* _Nonnull __buffer, size_t __buffer_size) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 261 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 long fpathconf(int __fd, int __name); long pathconf(const char* _Nonnull __path, int __name); int access(const char* _Nonnull __path, int __mode); int faccessat(int __dirfd, const char* _Nonnull __path, int __mode, int __flags); int link(const char* _Nonnull __old_path, const char* _Nonnull __new_path); int linkat(int __old_dir_fd, const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path, int __flags); int unlink(const char* _Nonnull __path); int unlinkat(int __dirfd, const char* _Nonnull __path, int __flags); int chdir(const char* _Nonnull __path); int fchdir(int __fd); int rmdir(const char* _Nonnull __path); int pipe(int __fds[_Nonnull 2]); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 277 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int pipe2(int __fds[_Nonnull 2], int __flags); #endif # 279 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int chroot(const char* _Nonnull __path); int symlink(const char* _Nonnull __old_path, const char* _Nonnull __new_path); int symlinkat(const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path); ssize_t readlink(const char* _Nonnull __path, char* _Nonnull __buf, size_t __buf_size); ssize_t readlinkat(int __dir_fd, const char* _Nonnull __path, char* _Nonnull __buf, size_t __buf_size); int chown(const char* _Nonnull __path, uid_t __owner, gid_t __group); int fchown(int __fd, uid_t __owner, gid_t __group); int fchownat(int __dir_fd, const char* _Nonnull __path, uid_t __owner, gid_t __group, int __flags); int lchown(const char* _Nonnull __path, uid_t __owner, gid_t __group); char* _Nullable getcwd(char* _Nullable __buf, size_t __size); void sync(void); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 292 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 294 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int syncfs(int __fd) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 296 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #endif # 298 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int close(int __fd); /** * [read(2)](https://man7.org/linux/man-pages/man2/read.2.html) reads * up to `__count` bytes from file descriptor `__fd` into `__buf`. * * Note: `__buf` is not normally nullable, but may be null in the * special case of a zero-length read(), which while not generally * useful may be meaningful to some device drivers. * * Returns the number of bytes read on success, and returns -1 and sets `errno` on failure. */ ssize_t read(int __fd, void* __BIONIC_COMPLICATED_NULLNESS __buf, size_t __count); /** * [write(2)](https://man7.org/linux/man-pages/man2/write.2.html) writes * up to `__count` bytes to file descriptor `__fd` from `__buf`. * * Note: `__buf` is not normally nullable, but may be null in the * special case of a zero-length write(), which while not generally * useful may be meaningful to some device drivers. * * Returns the number of bytes written on success, and returns -1 and sets `errno` on failure. */ ssize_t write(int __fd, const void* __BIONIC_COMPLICATED_NULLNESS __buf, size_t __count); int dup(int __old_fd); int dup2(int __old_fd, int __new_fd); int dup3(int __old_fd, int __new_fd, int __flags); int fsync(int __fd); int fdatasync(int __fd); /* See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_FILE_OFFSET64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 333 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int truncate(const char* _Nonnull __path, off_t __length) __RENAME(truncate64); off_t lseek(int __fd, off_t __offset, int __whence) __RENAME(lseek64); ssize_t pread(int __fd, void* _Nonnull __buf, size_t __count, off_t __offset) __RENAME(pread64); ssize_t pwrite(int __fd, const void* _Nonnull __buf, size_t __count, off_t __offset) __RENAME(pwrite64); int ftruncate(int __fd, off_t __length) __RENAME(ftruncate64); #else # 339 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int truncate(const char* _Nonnull __path, off_t __length); off_t lseek(int __fd, off_t __offset, int __whence); ssize_t pread(int __fd, void* _Nonnull __buf, size_t __count, off_t __offset); ssize_t pwrite(int __fd, const void* _Nonnull __buf, size_t __count, off_t __offset); int ftruncate(int __fd, off_t __length); #endif # 345 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int truncate64(const char* _Nonnull __path, off64_t __length); off64_t lseek64(int __fd, off64_t __offset, int __whence); ssize_t pread64(int __fd, void* _Nonnull __buf, size_t __count, off64_t __offset); ssize_t pwrite64(int __fd, const void* _Nonnull __buf, size_t __count, off64_t __offset); int ftruncate64(int __fd, off64_t __length); int pause(void); unsigned int alarm(unsigned int __seconds); unsigned int sleep(unsigned int __seconds); int usleep(useconds_t __microseconds); int gethostname(char* _Nonnull _buf, size_t __buf_size); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 360 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int sethostname(const char* _Nonnull __name, size_t __n) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 362 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int brk(void* _Nonnull __addr); void* _Nullable sbrk(ptrdiff_t __increment); int isatty(int __fd); char* _Nullable ttyname(int __fd); int ttyname_r(int __fd, char* _Nonnull __buf, size_t __buf_size); int acct(const char* _Nullable __path); /** * [getpagesize(2)](https://man7.org/linux/man-pages/man2/getpagesize.2.html) * returns the system's page size. This is slightly faster than going via * sysconf(). * * Returns the system's page size in bytes. */ int getpagesize(void) __attribute_const__; long syscall(long __number, ...); int daemon(int __no_chdir, int __no_close); #if 0 /* disabled by -frewrite-includes */ #if defined(__arm__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 387 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 /** * New code should use __builtin___clear_cache() instead, which works on * all architectures. */ int cacheflush(long __addr, long __nbytes, long __cache); #endif # 393 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 pid_t tcgetpgrp(int __fd); int tcsetpgrp(int __fd, pid_t __pid); /* Used to retry syscalls that can return EINTR. */ #define TEMP_FAILURE_RETRY(exp) ({ \ __typeof__(exp) _rc; \ do { \ _rc = (exp); \ } while (_rc == -1 && errno == EINTR); \ _rc; }) #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 407 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int getdomainname(char* _Nonnull __buf, size_t __buf_size) __INTRODUCED_IN(26); int setdomainname(const char* _Nonnull __name, size_t __n) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 410 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 /** * [copy_file_range(2)](https://man7.org/linux/man-pages/man2/copy_file_range.2.html) copies * a range of data from one file descriptor to another. * * Available since API level 34. * * Returns the number of bytes copied on success, and returns -1 and sets * `errno` on failure. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 34 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 423 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 ssize_t copy_file_range(int __fd_in, off64_t* _Nullable __off_in, int __fd_out, off64_t* _Nullable __off_out, size_t __length, unsigned int __flags) __INTRODUCED_IN(34); #endif /* __ANDROID_API__ >= 34 */ # 425 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 428 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 void swab(const void* _Nonnull __src, void* _Nonnull __dst, ssize_t __byte_count) __INTRODUCED_IN(28); #endif # 430 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 /** * [close_range(2)](https://man7.org/linux/man-pages/man2/close_range.2.html) * performs an action (which depends on value of flags) on an inclusive range * of file descriptors. * * Available since API level 34. * * Note: there is no emulation on too old kernels, hence this will fail with * -1/ENOSYS on pre-5.9 kernels, -1/EINVAL for unsupported flags. In particular * CLOSE_RANGE_CLOEXEC requires 5.11, though support was backported to Android * Common Kernel 5.10-T. * * Returns 0 on success, and returns -1 and sets `errno` on failure. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 34 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 447 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 int close_range(unsigned int __min_fd, unsigned int __max_fd, int __flags) __INTRODUCED_IN(34); #endif /* __ANDROID_API__ >= 34 */ # 449 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 452 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #define _UNISTD_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 453 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 454 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 #undef _UNISTD_H_ #endif # 456 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 __END_DECLS #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* legacy_unistd_inlines.h expanded by -frewrite-includes */ #include #else /* legacy_unistd_inlines.h expanded by -frewrite-includes */ # 459 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_unistd_inlines.h" 1 3 4 /* * Copyright (C) 2019 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_unistd_inlines.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_unistd_inlines.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_unistd_inlines.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ < 28 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_unistd_inlines.h" 3 4 #define __BIONIC_SWAB_INLINE static __inline #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* swab.h expanded by -frewrite-includes */ #include #else /* swab.h expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_unistd_inlines.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 1 3 4 /* * Copyright (C) 2019 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__BIONIC_SWAB_INLINE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 #define __BIONIC_SWAB_INLINE static __inline #endif # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/swab.h" 3 4 __BEGIN_DECLS __BIONIC_SWAB_INLINE void swab(const void* _Nonnull __void_src, void* _Nonnull __void_dst, ssize_t __byte_count) { const uint8_t* __src = __BIONIC_CAST(static_cast, const uint8_t*, __void_src); uint8_t* __dst = __BIONIC_CAST(static_cast, uint8_t*, __void_dst); while (__byte_count > 1) { uint8_t x = *__src++; uint8_t y = *__src++; *__dst++ = y; *__dst++ = x; __byte_count -= 2; } } __END_DECLS #endif /* swab.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_unistd_inlines.h" 2 3 4 #endif # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_unistd_inlines.h" 3 4 #endif /* legacy_unistd_inlines.h expanded by -frewrite-includes */ # 460 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/unistd.h" 2 3 4 #endif /* unistd.h expanded by -frewrite-includes */ # 62 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 62 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 63 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #define vp8_sem_t sem_t #define vp8_sem_init sem_init static INLINE int vp8_sem_wait(vp8_sem_t *sem) { int ret; while ((ret = sem_wait(sem)) == -1 && errno == EINTR) { } return ret; } #define vp8_sem_post sem_post #define vp8_sem_destroy sem_destroy #endif /* __APPLE__ */ # 74 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" /* Not Windows. Assume pthreads */ /* thread_sleep implementation: yield unless Linux/Unix. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__unix__) || defined(__APPLE__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #define thread_sleep(nms) /* {struct timespec ts;ts.tv_sec=0; ts.tv_nsec = 1000*nms;nanosleep(&ts, NULL);} */ #else # 82 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #define thread_sleep(nms) sched_yield(); #endif /* __unix__ || __APPLE__ */ # 84 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #endif # 86 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if 0 /* disabled by -frewrite-includes */ #if VPX_ARCH_X86 || VPX_ARCH_X86_64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/x86.h" #endif /* expanded by -frewrite-includes */ # 88 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 89 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #else # 90 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #define x86_pause_hint() #endif # 92 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_atomics.h expanded by -frewrite-includes */ #include "vpx_util/vpx_atomics.h" #else /* vpx_atomics.h expanded by -frewrite-includes */ # 93 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" # 1 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" 1 /* * Copyright (c) 2017 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_UTIL_VPX_ATOMICS_H_ #define VPX_VPX_UTIL_VPX_ATOMICS_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" # 15 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #ifdef __cplusplus extern "C" { #endif // __cplusplus # 19 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_OS_SUPPORT && CONFIG_MULTITHREAD #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" // Look for built-in atomic support. We cannot use or // since neither is guaranteed to exist on both C and C++ platforms, and we need // to back the atomic type with the same type (g++ needs to be able to use // gcc-built code). g++ 6 doesn't support _Atomic as a keyword and can't use the // stdatomic.h header. Even if both and existed it's not // guaranteed that atomic_int is the same type as std::atomic_int. // See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932#c13. #if 0 /* disabled by -frewrite-includes */ #if !defined(__has_builtin) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #define __has_builtin(x) 0 // Compatibility with non-clang compilers. #endif // !defined(__has_builtin) # 32 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #if 0 /* disabled by -frewrite-includes */ #if (__has_builtin(__atomic_load_n)) || \ (defined(__GNUC__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 36 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" // For GCC >= 4.7 and Clang versions that support __atomic builtins, use those. #define VPX_USE_ATOMIC_BUILTINS #else # 39 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" // Use platform-specific asm barriers. #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 41 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" // TODO(pbos): This assumes that newer versions of MSVC are building with the // default /volatile:ms (or older, where this is always true. Consider adding // support for using instead of stdatomic.h when building C++11 under // MSVC. It's unclear what to do for plain C under /volatile:iso (inline asm?), // there're no explicit Interlocked* functions for only storing or loading // (presumably because volatile has historically implied that on MSVC). // // For earlier versions of MSVC or the default /volatile:ms volatile int are // acquire/release and require no barrier. #define vpx_atomic_memory_barrier() \ do { \ } while (0) #else # 54 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #if 0 /* disabled by -frewrite-includes */ #if VPX_ARCH_X86 || VPX_ARCH_X86_64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 55 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" // Use a compiler barrier on x86, no runtime penalty. #define vpx_atomic_memory_barrier() __asm__ __volatile__("" ::: "memory") #if 0 /* disabled by -frewrite-includes */ #if 0 #elif VPX_ARCH_ARM #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 58 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #define vpx_atomic_memory_barrier() __asm__ __volatile__("dmb ish" ::: "memory") #if 0 /* disabled by -frewrite-includes */ #if 0 #elif VPX_ARCH_MIPS #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 60 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #define vpx_atomic_memory_barrier() __asm__ __volatile__("sync" ::: "memory") #else # 62 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #error Unsupported architecture! #endif // VPX_ARCH_X86 || VPX_ARCH_X86_64 # 64 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #endif // defined(_MSC_VER) # 65 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #endif // atomic builtin availability check # 66 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" // These are wrapped in a struct so that they are not easily accessed directly // on any platform (to discourage programmer errors by setting values directly). // This primitive MUST be initialized using vpx_atomic_init or VPX_ATOMIC_INIT // (NOT memset) and accessed through vpx_atomic_ functions. typedef struct vpx_atomic_int { volatile int value; } vpx_atomic_int; #define VPX_ATOMIC_INIT(num) \ { num } // Initialization of an atomic int, not thread safe. static INLINE void vpx_atomic_init(vpx_atomic_int *atomic, int value) { atomic->value = value; } static INLINE void vpx_atomic_store_release(vpx_atomic_int *atomic, int value) { #if 0 /* disabled by -frewrite-includes */ #if defined(VPX_USE_ATOMIC_BUILTINS) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 85 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" __atomic_store_n(&atomic->value, value, __ATOMIC_RELEASE); #else # 87 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" vpx_atomic_memory_barrier(); atomic->value = value; #endif // defined(VPX_USE_ATOMIC_BUILTINS) # 90 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" } static INLINE int vpx_atomic_load_acquire(const vpx_atomic_int *atomic) { #if 0 /* disabled by -frewrite-includes */ #if defined(VPX_USE_ATOMIC_BUILTINS) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 94 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" return __atomic_load_n(&atomic->value, __ATOMIC_ACQUIRE); #else # 96 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" int v = atomic->value; vpx_atomic_memory_barrier(); return v; #endif // defined(VPX_USE_ATOMIC_BUILTINS) # 100 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" } #undef VPX_USE_ATOMIC_BUILTINS #undef vpx_atomic_memory_barrier #endif /* CONFIG_OS_SUPPORT && CONFIG_MULTITHREAD */ # 106 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #ifdef __cplusplus } // extern "C" #endif // __cplusplus # 110 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #endif // VPX_VPX_UTIL_VPX_ATOMICS_H_ # 112 "../../third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h" #endif /* vpx_atomics.h expanded by -frewrite-includes */ # 94 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" 2 static INLINE void vp8_atomic_spin_wait( int mb_col, const vpx_atomic_int *last_row_current_mb_col, const int nsync) { while (mb_col > (vpx_atomic_load_acquire(last_row_current_mb_col) - nsync)) { x86_pause_hint(); thread_sleep(0); } } #endif /* CONFIG_OS_SUPPORT && CONFIG_MULTITHREAD */ # 105 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #ifdef __cplusplus } // extern "C" #endif # 109 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #endif // VPX_VP8_COMMON_THREADING_H_ # 111 "../../third_party/libvpx/source/libvpx/vp8/common/threading.h" #endif /* threading.h expanded by -frewrite-includes */ # 28 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vpx_ports/mem.h" #endif /* expanded by -frewrite-includes */ # 28 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 29 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/internal/vpx_codec_internal.h" #endif /* expanded by -frewrite-includes */ # 29 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 30 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vp8.h" #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 31 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* mcomp.h expanded by -frewrite-includes */ #include "mcomp.h" #else /* mcomp.h expanded by -frewrite-includes */ # 31 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_MCOMP_H_ #define VPX_VP8_ENCODER_MCOMP_H_ #if 0 /* expanded by -frewrite-includes */ #include "block.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx_dsp/variance.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h" #ifdef __cplusplus extern "C" { #endif # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h" /* The maximum number of steps in a step search given the largest allowed * initial step */ #define MAX_MVSEARCH_STEPS 8 /* Max full pel mv specified in 1 pel units */ #define MAX_FULL_PEL_VAL ((1 << (MAX_MVSEARCH_STEPS)) - 1) /* Maximum size of the first step in full pel units */ #define MAX_FIRST_STEP (1 << (MAX_MVSEARCH_STEPS - 1)) int vp8_mv_bit_cost(int_mv *mv, int_mv *ref, int *mvcost[2], int Weight); void vp8_init_dsmotion_compensation(MACROBLOCK *x, int stride); void vp8_init3smotion_compensation(MACROBLOCK *x, int stride); int vp8_hex_search(MACROBLOCK *x, BLOCK *b, BLOCKD *d, int_mv *ref_mv, int_mv *best_mv, int search_param, int sad_per_bit, const vp8_variance_fn_ptr_t *vfp, int *mvsadcost[2], int_mv *center_mv); typedef int(fractional_mv_step_fp)(MACROBLOCK *x, BLOCK *b, BLOCKD *d, int_mv *bestmv, int_mv *ref_mv, int error_per_bit, const vp8_variance_fn_ptr_t *vfp, int *mvcost[2], int *distortion, unsigned int *sse); fractional_mv_step_fp vp8_find_best_sub_pixel_step_iteratively; fractional_mv_step_fp vp8_find_best_sub_pixel_step; fractional_mv_step_fp vp8_find_best_half_pixel_step; fractional_mv_step_fp vp8_skip_fractional_mv_step; int vp8_full_search_sad(MACROBLOCK *x, BLOCK *b, BLOCKD *d, int_mv *ref_mv, int sad_per_bit, int distance, vp8_variance_fn_ptr_t *fn_ptr, int *mvcost[2], int_mv *center_mv); typedef int (*vp8_refining_search_fn_t)(MACROBLOCK *x, BLOCK *b, BLOCKD *d, int_mv *ref_mv, int sad_per_bit, int distance, vp8_variance_fn_ptr_t *fn_ptr, int *mvcost[2], int_mv *center_mv); typedef int (*vp8_diamond_search_fn_t)(MACROBLOCK *x, BLOCK *b, BLOCKD *d, int_mv *ref_mv, int_mv *best_mv, int search_param, int sad_per_bit, int *num00, vp8_variance_fn_ptr_t *fn_ptr, int *mvcost[2], int_mv *center_mv); #ifdef __cplusplus } // extern "C" #endif # 74 "../../third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h" #endif // VPX_VP8_ENCODER_MCOMP_H_ # 76 "../../third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h" #endif /* mcomp.h expanded by -frewrite-includes */ # 32 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* findnearmv.h expanded by -frewrite-includes */ #include "vp8/common/findnearmv.h" #else /* findnearmv.h expanded by -frewrite-includes */ # 32 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_FINDNEARMV_H_ #define VPX_VP8_COMMON_FINDNEARMV_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" #if 0 /* expanded by -frewrite-includes */ #include "mv.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" #if 0 /* expanded by -frewrite-includes */ #include "blockd.h" #endif /* expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" # 17 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* modecont.h expanded by -frewrite-includes */ #include "modecont.h" #else /* modecont.h expanded by -frewrite-includes */ # 17 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/modecont.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_MODECONT_H_ #define VPX_VP8_COMMON_MODECONT_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vp8/common/modecont.h" extern const int vp8_mode_contexts[6][4]; #ifdef __cplusplus } // extern "C" #endif # 23 "../../third_party/libvpx/source/libvpx/vp8/common/modecont.h" #endif // VPX_VP8_COMMON_MODECONT_H_ # 25 "../../third_party/libvpx/source/libvpx/vp8/common/modecont.h" #endif /* modecont.h expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "treecoder.h" #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" # 19 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" #ifdef __cplusplus extern "C" { #endif # 23 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" static INLINE void mv_bias(int refmb_ref_frame_sign_bias, int refframe, int_mv *mvp, const int *ref_frame_sign_bias) { if (refmb_ref_frame_sign_bias != ref_frame_sign_bias[refframe]) { mvp->as_mv.row *= -1; mvp->as_mv.col *= -1; } } #define LEFT_TOP_MARGIN (16 << 3) #define RIGHT_BOTTOM_MARGIN (16 << 3) static INLINE void vp8_clamp_mv2(int_mv *mv, const MACROBLOCKD *xd) { if (mv->as_mv.col < (xd->mb_to_left_edge - LEFT_TOP_MARGIN)) { mv->as_mv.col = xd->mb_to_left_edge - LEFT_TOP_MARGIN; } else if (mv->as_mv.col > xd->mb_to_right_edge + RIGHT_BOTTOM_MARGIN) { mv->as_mv.col = xd->mb_to_right_edge + RIGHT_BOTTOM_MARGIN; } if (mv->as_mv.row < (xd->mb_to_top_edge - LEFT_TOP_MARGIN)) { mv->as_mv.row = xd->mb_to_top_edge - LEFT_TOP_MARGIN; } else if (mv->as_mv.row > xd->mb_to_bottom_edge + RIGHT_BOTTOM_MARGIN) { mv->as_mv.row = xd->mb_to_bottom_edge + RIGHT_BOTTOM_MARGIN; } } static INLINE void vp8_clamp_mv(int_mv *mv, int mb_to_left_edge, int mb_to_right_edge, int mb_to_top_edge, int mb_to_bottom_edge) { mv->as_mv.col = (mv->as_mv.col < mb_to_left_edge) ? mb_to_left_edge : mv->as_mv.col; mv->as_mv.col = (mv->as_mv.col > mb_to_right_edge) ? mb_to_right_edge : mv->as_mv.col; mv->as_mv.row = (mv->as_mv.row < mb_to_top_edge) ? mb_to_top_edge : mv->as_mv.row; mv->as_mv.row = (mv->as_mv.row > mb_to_bottom_edge) ? mb_to_bottom_edge : mv->as_mv.row; } static INLINE unsigned int vp8_check_mv_bounds(int_mv *mv, int mb_to_left_edge, int mb_to_right_edge, int mb_to_top_edge, int mb_to_bottom_edge) { unsigned int need_to_clamp; need_to_clamp = (mv->as_mv.col < mb_to_left_edge); need_to_clamp |= (mv->as_mv.col > mb_to_right_edge); need_to_clamp |= (mv->as_mv.row < mb_to_top_edge); need_to_clamp |= (mv->as_mv.row > mb_to_bottom_edge); return need_to_clamp; } void vp8_find_near_mvs(MACROBLOCKD *xd, const MODE_INFO *here, int_mv *nearest, int_mv *nearby, int_mv *best_mv, int near_mv_ref_cnts[4], int refframe, int *ref_frame_sign_bias); int vp8_find_near_mvs_bias(MACROBLOCKD *xd, const MODE_INFO *here, int_mv mode_mv_sb[2][MB_MODE_COUNT], int_mv best_mv_sb[2], int cnt[4], int refframe, int *ref_frame_sign_bias); vp8_prob *vp8_mv_ref_probs(vp8_prob p[VP8_MVREFS - 1], const int near_mv_ref_ct[4]); extern const unsigned char vp8_mbsplit_offset[4][16]; static INLINE uint32_t left_block_mv(const MODE_INFO *cur_mb, int b) { if (!(b & 3)) { /* On L edge, get from MB to left of us */ --cur_mb; if (cur_mb->mbmi.mode != SPLITMV) return cur_mb->mbmi.mv.as_int; b += 4; } return (cur_mb->bmi + b - 1)->mv.as_int; } static INLINE uint32_t above_block_mv(const MODE_INFO *cur_mb, int b, int mi_stride) { if (!(b >> 2)) { /* On top edge, get from MB above us */ cur_mb -= mi_stride; if (cur_mb->mbmi.mode != SPLITMV) return cur_mb->mbmi.mv.as_int; b += 16; } return (cur_mb->bmi + (b - 4))->mv.as_int; } static INLINE B_PREDICTION_MODE left_block_mode(const MODE_INFO *cur_mb, int b) { if (!(b & 3)) { /* On L edge, get from MB to left of us */ --cur_mb; switch (cur_mb->mbmi.mode) { case B_PRED: return (cur_mb->bmi + b + 3)->as_mode; case DC_PRED: return B_DC_PRED; case V_PRED: return B_VE_PRED; case H_PRED: return B_HE_PRED; case TM_PRED: return B_TM_PRED; default: return B_DC_PRED; } } return (cur_mb->bmi + b - 1)->as_mode; } static INLINE B_PREDICTION_MODE above_block_mode(const MODE_INFO *cur_mb, int b, int mi_stride) { if (!(b >> 2)) { /* On top edge, get from MB above us */ cur_mb -= mi_stride; switch (cur_mb->mbmi.mode) { case B_PRED: return (cur_mb->bmi + b + 12)->as_mode; case DC_PRED: return B_DC_PRED; case V_PRED: return B_VE_PRED; case H_PRED: return B_HE_PRED; case TM_PRED: return B_TM_PRED; default: return B_DC_PRED; } } return (cur_mb->bmi + b - 4)->as_mode; } #ifdef __cplusplus } // extern "C" #endif # 150 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" #endif // VPX_VP8_COMMON_FINDNEARMV_H_ # 152 "../../third_party/libvpx/source/libvpx/vp8/common/findnearmv.h" #endif /* findnearmv.h expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* lookahead.h expanded by -frewrite-includes */ #include "lookahead.h" #else /* lookahead.h expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h" 1 /* * Copyright (c) 2011 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_LOOKAHEAD_H_ #define VPX_VP8_ENCODER_LOOKAHEAD_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_scale/yv12config.h" #endif /* expanded by -frewrite-includes */ # 12 "../../third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h" # 13 "../../third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h" #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 13 "../../third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h" # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h" #ifdef __cplusplus extern "C" { #endif # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h" struct lookahead_entry { YV12_BUFFER_CONFIG img; int64_t ts_start; int64_t ts_end; unsigned int flags; }; struct lookahead_ctx; /**\brief Initializes the lookahead stage * * The lookahead stage is a queue of frame buffers on which some analysis * may be done when buffers are enqueued. * * */ struct lookahead_ctx *vp8_lookahead_init(unsigned int width, unsigned int height, unsigned int depth); /**\brief Destroys the lookahead stage * */ void vp8_lookahead_destroy(struct lookahead_ctx *ctx); /**\brief Enqueue a source buffer * * This function will copy the source image into a new framebuffer with * the expected stride/border. * * If active_map is non-NULL and there is only one frame in the queue, then copy * only active macroblocks. * * \param[in] ctx Pointer to the lookahead context * \param[in] src Pointer to the image to enqueue * \param[in] ts_start Timestamp for the start of this frame * \param[in] ts_end Timestamp for the end of this frame * \param[in] flags Flags set on this frame * \param[in] active_map Map that specifies which macroblock is active */ int vp8_lookahead_push(struct lookahead_ctx *ctx, YV12_BUFFER_CONFIG *src, int64_t ts_start, int64_t ts_end, unsigned int flags, unsigned char *active_map); /**\brief Get the next source buffer to encode * * * \param[in] ctx Pointer to the lookahead context * \param[in] drain Flag indicating the buffer should be drained * (return a buffer regardless of the current queue depth) * * \retval NULL, if drain set and queue is empty * \retval NULL, if drain not set and queue not of the configured depth * */ struct lookahead_entry *vp8_lookahead_pop(struct lookahead_ctx *ctx, int drain); #define PEEK_FORWARD 1 #define PEEK_BACKWARD (-1) /**\brief Get a future source buffer to encode * * \param[in] ctx Pointer to the lookahead context * \param[in] index Index of the frame to be returned, 0 == next frame * * \retval NULL, if no buffer exists at the specified index * */ struct lookahead_entry *vp8_lookahead_peek(struct lookahead_ctx *ctx, unsigned int index, int direction); /**\brief Get the number of frames currently in the lookahead queue * * \param[in] ctx Pointer to the lookahead context */ unsigned int vp8_lookahead_depth(struct lookahead_ctx *ctx); #ifdef __cplusplus } // extern "C" #endif # 98 "../../third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h" #endif // VPX_VP8_ENCODER_LOOKAHEAD_H_ # 100 "../../third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h" #endif /* lookahead.h expanded by -frewrite-includes */ # 34 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* denoising.h expanded by -frewrite-includes */ #include "vp8/encoder/denoising.h" #else /* denoising.h expanded by -frewrite-includes */ # 35 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/denoising.h" 1 /* * Copyright (c) 2012 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_DENOISING_H_ #define VPX_VP8_ENCODER_DENOISING_H_ #if 0 /* expanded by -frewrite-includes */ #include "block.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/denoising.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/denoising.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/loopfilter.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/denoising.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/encoder/denoising.h" #ifdef __cplusplus extern "C" { #endif # 20 "../../third_party/libvpx/source/libvpx/vp8/encoder/denoising.h" #define SUM_DIFF_THRESHOLD 512 #define SUM_DIFF_THRESHOLD_HIGH 600 #define MOTION_MAGNITUDE_THRESHOLD (8 * 3) #define SUM_DIFF_THRESHOLD_UV (96) // (8 * 8 * 1.5) #define SUM_DIFF_THRESHOLD_HIGH_UV (8 * 8 * 2) #define SUM_DIFF_FROM_AVG_THRESH_UV (8 * 8 * 8) #define MOTION_MAGNITUDE_THRESHOLD_UV (8 * 3) #define MAX_GF_ARF_DENOISE_RANGE (8) enum vp8_denoiser_decision { COPY_BLOCK, FILTER_BLOCK }; enum vp8_denoiser_filter_state { kNoFilter, kFilterZeroMV, kFilterNonZeroMV }; enum vp8_denoiser_mode { kDenoiserOff, kDenoiserOnYOnly, kDenoiserOnYUV, kDenoiserOnYUVAggressive, kDenoiserOnAdaptive }; typedef struct { // Scale factor on sse threshold above which no denoising is done. unsigned int scale_sse_thresh; // Scale factor on motion magnitude threshold above which no // denoising is done. unsigned int scale_motion_thresh; // Scale factor on motion magnitude below which we increase the strength of // the temporal filter (in function vp8_denoiser_filter). unsigned int scale_increase_filter; // Scale factor to bias to ZEROMV for denoising. unsigned int denoise_mv_bias; // Scale factor to bias to ZEROMV for coding mode selection. unsigned int pickmode_mv_bias; // Quantizer threshold below which we use the segmentation map to switch off // loop filter for blocks that have been coded as ZEROMV-LAST a certain number // (consec_zerolast) of consecutive frames. Note that the delta-QP is set to // 0 when segmentation map is used for shutting off loop filter. unsigned int qp_thresh; // Threshold for number of consecutive frames for blocks coded as ZEROMV-LAST. unsigned int consec_zerolast; // Threshold for amount of spatial blur on Y channel. 0 means no spatial blur. unsigned int spatial_blur; } denoise_params; typedef struct vp8_denoiser { YV12_BUFFER_CONFIG yv12_running_avg[MAX_REF_FRAMES]; YV12_BUFFER_CONFIG yv12_mc_running_avg; // TODO(marpan): Should remove yv12_last_source and use vp8_lookahead_peak. YV12_BUFFER_CONFIG yv12_last_source; unsigned char *denoise_state; int num_mb_cols; int denoiser_mode; int threshold_aggressive_mode; int nmse_source_diff; int nmse_source_diff_count; int qp_avg; int qp_threshold_up; int qp_threshold_down; int bitrate_threshold; denoise_params denoise_pars; } VP8_DENOISER; int vp8_denoiser_allocate(VP8_DENOISER *denoiser, int width, int height, int num_mb_rows, int num_mb_cols, int mode); void vp8_denoiser_free(VP8_DENOISER *denoiser); void vp8_denoiser_set_parameters(VP8_DENOISER *denoiser, int mode); void vp8_denoiser_denoise_mb(VP8_DENOISER *denoiser, MACROBLOCK *x, unsigned int best_sse, unsigned int zero_mv_sse, int recon_yoffset, int recon_uvoffset, loop_filter_info_n *lfi_n, int mb_row, int mb_col, int block_index, int consec_zero_last); #ifdef __cplusplus } // extern "C" #endif # 102 "../../third_party/libvpx/source/libvpx/vp8/encoder/denoising.h" #endif // VPX_VP8_ENCODER_DENOISING_H_ # 104 "../../third_party/libvpx/source/libvpx/vp8/encoder/denoising.h" #endif /* denoising.h expanded by -frewrite-includes */ # 36 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" 2 #endif # 37 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #ifdef __cplusplus extern "C" { #endif # 41 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #define MIN_GF_INTERVAL 4 #define DEFAULT_GF_INTERVAL 7 #define KEY_FRAME_CONTEXT 5 #define MAX_LAG_BUFFERS (CONFIG_REALTIME_ONLY ? 1 : 25) #define AF_THRESH 25 #define AF_THRESH2 100 #define ARF_DECAY_THRESH 12 #define MIN_THRESHMULT 32 #define MAX_THRESHMULT 512 #define GF_ZEROMV_ZBIN_BOOST 12 #define LF_ZEROMV_ZBIN_BOOST 6 #define MV_ZBIN_BOOST 4 #define ZBIN_OQ_MAX 192 #define VP8_TEMPORAL_ALT_REF !CONFIG_REALTIME_ONLY /* vp8 uses 10,000,000 ticks/second as time stamp */ #define TICKS_PER_SEC 10000000 typedef struct { int kf_indicated; unsigned int frames_since_key; unsigned int frames_since_golden; int filter_level; int frames_till_gf_update_due; int recent_ref_frame_usage[MAX_REF_FRAMES]; MV_CONTEXT mvc[2]; int mvcosts[2][MVvals + 1]; #ifdef MODE_STATS int y_modes[5]; int uv_modes[4]; int b_modes[10]; int inter_y_modes[10]; int inter_uv_modes[4]; int inter_b_modes[10]; #endif # 85 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" vp8_prob ymode_prob[4], uv_mode_prob[3]; /* interframe intra mode probs */ vp8_prob kf_ymode_prob[4], kf_uv_mode_prob[3]; /* keyframe "" */ int ymode_count[5], uv_mode_count[4]; /* intra MB type cts this frame */ int count_mb_ref_frame_usage[MAX_REF_FRAMES]; int this_frame_percent_intra; int last_frame_percent_intra; } CODING_CONTEXT; typedef struct { double frame; double intra_error; double coded_error; double ssim_weighted_pred_err; double pcnt_inter; double pcnt_motion; double pcnt_second_ref; double pcnt_neutral; double MVr; double mvr_abs; double MVc; double mvc_abs; double MVrv; double MVcv; double mv_in_out_count; double new_mv_count; double duration; double count; } FIRSTPASS_STATS; typedef struct { int frames_so_far; double frame_intra_error; double frame_coded_error; double frame_pcnt_inter; double frame_pcnt_motion; double frame_mvr; double frame_mvr_abs; double frame_mvc; double frame_mvc_abs; } ONEPASS_FRAMESTATS; typedef enum { THR_ZERO1 = 0, THR_DC = 1, THR_NEAREST1 = 2, THR_NEAR1 = 3, THR_ZERO2 = 4, THR_NEAREST2 = 5, THR_ZERO3 = 6, THR_NEAREST3 = 7, THR_NEAR2 = 8, THR_NEAR3 = 9, THR_V_PRED = 10, THR_H_PRED = 11, THR_TM = 12, THR_NEW1 = 13, THR_NEW2 = 14, THR_NEW3 = 15, THR_SPLIT1 = 16, THR_SPLIT2 = 17, THR_SPLIT3 = 18, THR_B_PRED = 19 } THR_MODES; typedef enum { DIAMOND = 0, NSTEP = 1, HEX = 2 } SEARCH_METHODS; typedef struct { int RD; SEARCH_METHODS search_method; int improved_quant; int improved_dct; int auto_filter; int recode_loop; int iterative_sub_pixel; int half_pixel_search; int quarter_pixel_search; int thresh_mult[MAX_MODES]; int max_step_search_steps; int first_step; int optimize_coefficients; int use_fastquant_for_pick; int no_skip_block4x4_search; int improved_mv_pred; } SPEED_FEATURES; typedef struct { MACROBLOCK mb; int segment_counts[MAX_MB_SEGMENTS]; int totalrate; } MB_ROW_COMP; typedef struct { TOKENEXTRA *start; TOKENEXTRA *stop; } TOKENLIST; typedef struct { int ithread; void *ptr1; void *ptr2; } ENCODETHREAD_DATA; typedef struct { int ithread; void *ptr1; } LPFTHREAD_DATA; enum { BLOCK_16X8, BLOCK_8X16, BLOCK_8X8, BLOCK_4X4, BLOCK_16X16, BLOCK_MAX_SEGMENTS }; typedef struct { /* Layer configuration */ double framerate; int target_bandwidth; /* bits per second */ /* Layer specific coding parameters */ int64_t starting_buffer_level; int64_t optimal_buffer_level; int64_t maximum_buffer_size; int64_t starting_buffer_level_in_ms; int64_t optimal_buffer_level_in_ms; int64_t maximum_buffer_size_in_ms; int avg_frame_size_for_layer; int64_t buffer_level; int64_t bits_off_target; int64_t total_actual_bits; int total_target_vs_actual; int worst_quality; int active_worst_quality; int best_quality; int active_best_quality; int ni_av_qi; int ni_tot_qi; int ni_frames; int avg_frame_qindex; double rate_correction_factor; double key_frame_rate_correction_factor; double gf_rate_correction_factor; int zbin_over_quant; int inter_frame_target; int64_t total_byte_count; int filter_level; int frames_since_last_drop_overshoot; int force_maxqp; int last_frame_percent_intra; int count_mb_ref_frame_usage[MAX_REF_FRAMES]; int last_q[2]; } LAYER_CONTEXT; typedef struct VP8_COMP { DECLARE_ALIGNED(16, short, Y1quant[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y1quant_shift[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y1zbin[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y1round[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2quant[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2quant_shift[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2zbin[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2round[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVquant[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVquant_shift[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVzbin[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVround[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, zrun_zbin_boost_y1[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, zrun_zbin_boost_y2[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, zrun_zbin_boost_uv[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y1quant_fast[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, Y2quant_fast[QINDEX_RANGE][16]); DECLARE_ALIGNED(16, short, UVquant_fast[QINDEX_RANGE][16]); MACROBLOCK mb; VP8_COMMON common; vp8_writer bc[9]; /* one boolcoder for each partition */ VP8_CONFIG oxcf; struct lookahead_ctx *lookahead; struct lookahead_entry *source; struct lookahead_entry *alt_ref_source; struct lookahead_entry *last_source; YV12_BUFFER_CONFIG *Source; YV12_BUFFER_CONFIG *un_scaled_source; YV12_BUFFER_CONFIG scaled_source; YV12_BUFFER_CONFIG *last_frame_unscaled_source; unsigned int frames_till_alt_ref_frame; /* frame in src_buffers has been identified to be encoded as an alt ref */ int source_alt_ref_pending; /* an alt ref frame has been encoded and is usable */ int source_alt_ref_active; /* source of frame to encode is an exact copy of an alt ref frame */ int is_src_frame_alt_ref; /* golden frame same as last frame ( short circuit gold searches) */ int gold_is_last; /* Alt reference frame same as last ( short circuit altref search) */ int alt_is_last; /* don't do both alt and gold search ( just do gold). */ int gold_is_alt; YV12_BUFFER_CONFIG pick_lf_lvl_frame; TOKENEXTRA *tok; unsigned int tok_count; unsigned int frames_since_key; unsigned int key_frame_frequency; unsigned int this_key_frame_forced; unsigned int next_key_frame_forced; /* Ambient reconstruction err target for force key frames */ int ambient_err; unsigned int mode_check_freq[MAX_MODES]; int rd_baseline_thresh[MAX_MODES]; int RDMULT; int RDDIV; CODING_CONTEXT coding_context; /* Rate targeting variables */ int64_t last_prediction_error; int64_t last_intra_error; int this_frame_target; int projected_frame_size; int last_q[2]; /* Separate values for Intra/Inter */ double rate_correction_factor; double key_frame_rate_correction_factor; double gf_rate_correction_factor; int frames_since_golden; /* Count down till next GF */ int frames_till_gf_update_due; /* GF interval chosen when we coded the last GF */ int current_gf_interval; /* Total bits overspent because of GF boost (cumulative) */ int gf_overspend_bits; /* Used in the few frames following a GF to recover the extra bits * spent in that GF */ int non_gf_bitrate_adjustment; /* Extra bits spent on key frames that need to be recovered */ int kf_overspend_bits; /* Current number of bit s to try and recover on each inter frame. */ int kf_bitrate_adjustment; int max_gf_interval; int baseline_gf_interval; int active_arnr_frames; int64_t key_frame_count; int prior_key_frame_distance[KEY_FRAME_CONTEXT]; /* Current section per frame bandwidth target */ int per_frame_bandwidth; /* Average frame size target for clip */ int av_per_frame_bandwidth; /* Minimum allocation that should be used for any frame */ int min_frame_bandwidth; int inter_frame_target; double output_framerate; int64_t last_time_stamp_seen; int64_t last_end_time_stamp_seen; int64_t first_time_stamp_ever; int ni_av_qi; int ni_tot_qi; int ni_frames; int avg_frame_qindex; int64_t total_byte_count; int buffered_mode; double framerate; double ref_framerate; int64_t buffer_level; int64_t bits_off_target; int rolling_target_bits; int rolling_actual_bits; int long_rolling_target_bits; int long_rolling_actual_bits; int64_t total_actual_bits; int total_target_vs_actual; /* debug stats */ int worst_quality; int active_worst_quality; int best_quality; int active_best_quality; int cq_target_quality; int drop_frames_allowed; /* Are we permitted to drop frames? */ int drop_frame; /* Drop this frame? */ #if 0 /* disabled by -frewrite-includes */ #if defined(DROP_UNCODED_FRAMES) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 428 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" int drop_frame_count; #endif # 430 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" vp8_prob frame_coef_probs[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [ENTROPY_NODES]; char update_probs[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES]; unsigned int frame_branch_ct[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [ENTROPY_NODES][2]; int gfu_boost; int kf_boost; int last_boost; int target_bandwidth; /* bits per second */ struct vpx_codec_pkt_list *output_pkt_list; #if 0 /* disabled by -frewrite-includes */ #if 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 446 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* Experimental code for lagged and one pass */ ONEPASS_FRAMESTATS one_pass_frame_stats[MAX_LAG_BUFFERS]; int one_pass_frame_index; #endif # 450 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" int decimation_factor; int decimation_count; /* for real time encoding */ int avg_encode_time; /* microsecond */ int avg_pick_mode_time; /* microsecond */ int Speed; int compressor_speed; int auto_gold; int auto_adjust_gold_quantizer; int auto_worst_q; int cpu_used; int pass; int prob_intra_coded; int prob_last_coded; int prob_gf_coded; int prob_skip_false; int last_skip_false_probs[3]; int last_skip_probs_q[3]; int recent_ref_frame_usage[MAX_REF_FRAMES]; int this_frame_percent_intra; int last_frame_percent_intra; int ref_frame_flags; SPEED_FEATURES sf; /* Count ZEROMV on all reference frames. */ int zeromv_count; int lf_zeromv_pct; unsigned char *skin_map; unsigned char *segmentation_map; signed char segment_feature_data[MB_LVL_MAX][MAX_MB_SEGMENTS]; unsigned int segment_encode_breakout[MAX_MB_SEGMENTS]; unsigned char *active_map; unsigned int active_map_enabled; /* Video conferencing cyclic refresh mode flags. This is a mode * designed to clean up the background over time in live encoding * scenarious. It uses segmentation. */ int cyclic_refresh_mode_enabled; int cyclic_refresh_mode_max_mbs_perframe; int cyclic_refresh_mode_index; int cyclic_refresh_q; signed char *cyclic_refresh_map; // Count on how many (consecutive) times a macroblock uses ZER0MV_LAST. unsigned char *consec_zero_last; // Counter that is reset when a block is checked for a mode-bias against // ZEROMV_LASTREF. unsigned char *consec_zero_last_mvbias; // Frame counter for the temporal pattern. Counter is rest when the temporal // layers are changed dynamically (run-time change). unsigned int temporal_pattern_counter; // Temporal layer id. int temporal_layer_id; // Measure of average squared difference between source and denoised signal. int mse_source_denoised; int force_maxqp; int frames_since_last_drop_overshoot; int last_pred_err_mb; // GF update for 1 pass cbr. int gf_update_onepass_cbr; int gf_interval_onepass_cbr; int gf_noboost_onepass_cbr; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTITHREAD #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 528 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* multithread data */ vpx_atomic_int *mt_current_mb_col; int mt_current_mb_col_size; int mt_sync_range; vpx_atomic_int b_multi_threaded; int encoding_thread_count; int b_lpf_running; pthread_t *h_encoding_thread; pthread_t h_filter_thread; MB_ROW_COMP *mb_row_ei; ENCODETHREAD_DATA *en_thread_data; LPFTHREAD_DATA lpf_thread_data; /* events */ vp8_sem_t *h_event_start_encoding; vp8_sem_t *h_event_end_encoding; vp8_sem_t h_event_start_lpf; vp8_sem_t h_event_end_lpf; #endif # 549 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" TOKENLIST *tplist; unsigned int partition_sz[MAX_PARTITIONS]; unsigned char *partition_d[MAX_PARTITIONS]; unsigned char *partition_d_end[MAX_PARTITIONS]; fractional_mv_step_fp *find_fractional_mv_step; vp8_refining_search_fn_t refining_search_sad; vp8_diamond_search_fn_t diamond_search_sad; vp8_variance_fn_ptr_t fn_ptr[BLOCK_MAX_SEGMENTS]; uint64_t time_receive_data; uint64_t time_compress_data; uint64_t time_pick_lpf; uint64_t time_encode_mb_row; int base_skip_false_prob[128]; FRAME_CONTEXT lfc_n; /* last frame entropy */ FRAME_CONTEXT lfc_a; /* last alt ref entropy */ FRAME_CONTEXT lfc_g; /* last gold ref entropy */ struct twopass_rc { unsigned int section_intra_rating; double section_max_qfactor; unsigned int next_iiratio; unsigned int this_iiratio; FIRSTPASS_STATS total_stats; FIRSTPASS_STATS this_frame_stats; FIRSTPASS_STATS *stats_in, *stats_in_end, *stats_in_start; FIRSTPASS_STATS total_left_stats; int first_pass_done; int64_t bits_left; int64_t clip_bits_total; double avg_iiratio; double modified_error_total; double modified_error_used; double modified_error_left; double kf_intra_err_min; double gf_intra_err_min; int frames_to_key; int maxq_max_limit; int maxq_min_limit; int gf_decay_rate; int static_scene_max_gf_interval; int kf_bits; /* Remaining error from uncoded frames in a gf group. */ int gf_group_error_left; /* Projected total bits available for a key frame group of frames */ int64_t kf_group_bits; /* Error score of frames still to be coded in kf group */ int64_t kf_group_error_left; /* Projected Bits available for a group including 1 GF or ARF */ int64_t gf_group_bits; /* Bits for the golden frame or ARF */ int gf_bits; int alt_extra_bits; double est_max_qcorrection_factor; } twopass; #if 0 /* disabled by -frewrite-includes */ #if VP8_TEMPORAL_ALT_REF #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 609 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" YV12_BUFFER_CONFIG alt_ref_buffer; YV12_BUFFER_CONFIG *frames[MAX_LAG_BUFFERS]; int fixed_divide[512]; #endif # 613 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #if 0 /* disabled by -frewrite-includes */ #if CONFIG_INTERNAL_STATS #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 615 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" int count; double total_y; double total_u; double total_v; double total; double total_sq_error; double totalp_y; double totalp_u; double totalp_v; double totalp; double total_sq_error2; uint64_t bytes; double summed_quality; double summed_weights; unsigned int tot_recode_hits; int b_calculate_ssimg; #endif # 633 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" int b_calculate_psnr; /* Per MB activity measurement */ unsigned int activity_avg; unsigned int *mb_activity_map; /* Record of which MBs still refer to last golden frame either * directly or through 0,0 */ unsigned char *gf_active_flags; int gf_active_count; int output_partition; /* Store last frame's MV info for next frame MV prediction */ int_mv *lfmv; int *lf_ref_frame_sign_bias; int *lf_ref_frame; /* force next frame to intra when kf_auto says so */ int force_next_frame_intra; int droppable; int initial_width; int initial_height; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 661 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" VP8_DENOISER denoiser; #endif # 663 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* Coding layer state variables */ unsigned int current_layer; LAYER_CONTEXT layer_context[VPX_TS_MAX_LAYERS]; int64_t frames_in_layer[VPX_TS_MAX_LAYERS]; int64_t bytes_in_layer[VPX_TS_MAX_LAYERS]; double sum_psnr[VPX_TS_MAX_LAYERS]; double sum_psnr_p[VPX_TS_MAX_LAYERS]; double total_error2[VPX_TS_MAX_LAYERS]; double total_error2_p[VPX_TS_MAX_LAYERS]; double sum_ssim[VPX_TS_MAX_LAYERS]; double sum_weights[VPX_TS_MAX_LAYERS]; double total_ssimg_y_in_layer[VPX_TS_MAX_LAYERS]; double total_ssimg_u_in_layer[VPX_TS_MAX_LAYERS]; double total_ssimg_v_in_layer[VPX_TS_MAX_LAYERS]; double total_ssimg_all_in_layer[VPX_TS_MAX_LAYERS]; #if 0 /* disabled by -frewrite-includes */ #if CONFIG_MULTI_RES_ENCODING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 683 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* Number of MBs per row at lower-resolution level */ int mr_low_res_mb_cols; /* Indicate if lower-res mv info is available */ unsigned char mr_low_res_mv_avail; #endif # 688 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" /* The frame number of each reference frames */ unsigned int current_ref_frames[MAX_REF_FRAMES]; // Closest reference frame to current frame. MV_REFERENCE_FRAME closest_reference_frame; struct rd_costs_struct { int mvcosts[2][MVvals + 1]; int mvsadcosts[2][MVfpvals + 1]; int mbmode_cost[2][MB_MODE_COUNT]; int intra_uv_mode_cost[2][MB_MODE_COUNT]; int bmode_costs[10][10][10]; int inter_bmode_costs[B_MODE_COUNT]; int token_costs[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; } rd_costs; // Use the static threshold from ROI settings. int use_roi_static_threshold; int ext_refresh_frame_flags_pending; // Always update correction factor used for rate control after each frame for // realtime encoding. int rt_always_update_correction_factor; // Flag to indicate frame may be dropped due to large expected overshoot, // and re-encoded on next frame at max_qp. int rt_drop_recode_on_overshoot; } VP8_COMP; void vp8_initialize_enc(void); void vp8_alloc_compressor_data(VP8_COMP *cpi); int vp8_reverse_trans(int x); void vp8_reset_temporal_layer_change(VP8_COMP *cpi, const VP8_CONFIG *oxcf, const int prev_num_layers); void vp8_init_temporal_layer_context(VP8_COMP *cpi, const VP8_CONFIG *oxcf, const int layer, double prev_layer_framerate); void vp8_update_layer_contexts(VP8_COMP *cpi); void vp8_save_layer_context(VP8_COMP *cpi); void vp8_restore_layer_context(VP8_COMP *cpi, const int layer); void vp8_new_framerate(VP8_COMP *cpi, double framerate); void vp8_loopfilter_frame(VP8_COMP *cpi, VP8_COMMON *cm); void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned char *dest_end, size_t *size); void vp8_tokenize_mb(VP8_COMP *, MACROBLOCK *, TOKENEXTRA **); void vp8_set_speed_features(VP8_COMP *cpi); int vp8_check_drop_buffer(VP8_COMP *cpi); #ifdef __cplusplus } // extern "C" #endif # 745 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #endif // VPX_VP8_ENCODER_ONYX_INT_H_ # 747 "../../third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h" #endif /* onyx_int.h expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* modecosts.h expanded by -frewrite-includes */ #include "modecosts.h" #else /* modecosts.h expanded by -frewrite-includes */ # 23 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_MODECOSTS_H_ #define VPX_VP8_ENCODER_MODECOSTS_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h" struct VP8_COMP; void vp8_init_mode_costs(struct VP8_COMP *c); #ifdef __cplusplus } // extern "C" #endif # 25 "../../third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h" #endif // VPX_VP8_ENCODER_MODECOSTS_H_ # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h" #endif /* modecosts.h expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* encodeintra.h expanded by -frewrite-includes */ #include "encodeintra.h" #else /* encodeintra.h expanded by -frewrite-includes */ # 24 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_ENCODEINTRA_H_ #define VPX_VP8_ENCODER_ENCODEINTRA_H_ #if 0 /* expanded by -frewrite-includes */ #include "onyx_int.h" #endif /* expanded by -frewrite-includes */ # 13 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h" # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h" #ifdef __cplusplus extern "C" { #endif # 18 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h" int vp8_encode_intra(MACROBLOCK *x, int use_dc_pred); void vp8_encode_intra16x16mby(MACROBLOCK *x); void vp8_encode_intra16x16mbuv(MACROBLOCK *x); void vp8_encode_intra4x4mby(MACROBLOCK *mb); void vp8_encode_intra4x4block(MACROBLOCK *x, int ib); #ifdef __cplusplus } // extern "C" #endif # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h" #endif // VPX_VP8_ENCODER_ENCODEINTRA_H_ # 29 "../../third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h" #endif /* encodeintra.h expanded by -frewrite-includes */ # 25 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* pickinter.h expanded by -frewrite-includes */ #include "pickinter.h" #else /* pickinter.h expanded by -frewrite-includes */ # 25 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_PICKINTER_H_ #define VPX_VP8_ENCODER_PICKINTER_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 13 "../../third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h" # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h" #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/onyxc_int.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h" #ifdef __cplusplus extern "C" { #endif # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h" extern void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, int *returnrate, int *returndistortion, int *returnintra, int mb_row, int mb_col); extern void vp8_pick_intra_mode(MACROBLOCK *x, int *rate); extern int vp8_get_inter_mbpred_error(MACROBLOCK *mb, const vp8_variance_fn_ptr_t *vfp, unsigned int *sse, int_mv this_mv); #ifdef __cplusplus } // extern "C" #endif # 32 "../../third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h" #endif // VPX_VP8_ENCODER_PICKINTER_H_ # 34 "../../third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h" #endif /* pickinter.h expanded by -frewrite-includes */ # 26 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* common.h expanded by -frewrite-includes */ #include "vp8/common/common.h" #else /* common.h expanded by -frewrite-includes */ # 26 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/common.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_COMMON_H_ #define VPX_VP8_COMMON_COMMON_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/common.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 1 3 4 /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /** * @file assert.h * @brief Assertions. * * There's no include guard in this file because may usefully be * included multiple times, with and without NDEBUG defined. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # 44 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #undef assert #undef __assert_no_op /** Internal implementation detail. Do not use. */ #define __assert_no_op __BIONIC_CAST(static_cast, void, 0) #ifdef NDEBUG # define assert(e) __assert_no_op #else # 54 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined(__cplusplus) || __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e)) # else # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /** * assert() aborts the program after logging an error message, if the * expression evaluates to false. * * On Android, the error goes to both stderr and logcat. */ # define assert(e) ((e) ? __assert_no_op : __assert(__FILE__, __LINE__, #e)) # endif # 65 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 #endif # 66 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 /* `static_assert` is a keyword in C++11 and C23; C11 had `_Static_assert` instead. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) && (__STDC_VERSION__ >= 201112L && __STDC_VERSION__ < 202311L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 72 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/assert.h" 3 4 __BEGIN_DECLS /** * __assert() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert(const char* _Nonnull __file, int __line, const char* _Nonnull __msg) __noreturn; /** * __assert2() is called by assert() on failure. Most users want assert() * instead, but this can be useful for reporting other failures. */ void __assert2(const char* _Nonnull __file, int __line, const char* _Nonnull __function, const char* _Nonnull __msg) __noreturn; __END_DECLS #endif /* assert.h expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/common.h" 2 /* Interface header for common constant data structures and lookup tables */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* vpx_mem.h expanded by -frewrite-includes */ #include "vpx_mem/vpx_mem.h" #else /* vpx_mem.h expanded by -frewrite-includes */ # 18 "../../third_party/libvpx/source/libvpx/vp8/common/common.h" # 1 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_MEM_VPX_MEM_H_ #define VPX_VPX_MEM_VPX_MEM_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" # 15 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__uClinux__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" # 17 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #endif # 18 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdlib.h expanded by -frewrite-includes */ #include #else /* stdlib.h expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _STDLIB_H #define _STDLIB_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* alloca.h expanded by -frewrite-includes */ #include #else /* alloca.h expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/alloca.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/alloca.h" 3 4 /** * @file alloca.h * @brief Allocate space on the stack. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/alloca.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/alloca.h" 3 4 /** * [alloca(3)](http://man7.org/linux/man-pages/man3/alloca.3.html) allocates space on the stack. * * New code should not use alloca because it cannot report failure. * Use regular heap allocation instead. * * @return a pointer to the space on success, but has undefined behavior on failure. */ #define alloca(size) __builtin_alloca(size) #endif /* alloca.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wait.h expanded by -frewrite-includes */ #include #else /* wait.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wait.h" 1 3 4 /* * Copyright (C) 2017 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wait.h" 3 4 /** * @file bits/wait.h * @brief Process exit status macros. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wait.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wait.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wait.h expanded by -frewrite-includes */ #include #else /* wait.h expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wait.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/wait.h" 1 3 4 /* * This file is auto-generated. Modifications will be lost. * * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ * for more information. */ #ifndef _UAPI_LINUX_WAIT_H #define _UAPI_LINUX_WAIT_H #define WNOHANG 0x00000001 #define WUNTRACED 0x00000002 #define WSTOPPED WUNTRACED #define WEXITED 0x00000004 #define WCONTINUED 0x00000008 #define WNOWAIT 0x01000000 #define __WNOTHREAD 0x20000000 #define __WALL 0x40000000 #define __WCLONE 0x80000000 #define P_ALL 0 #define P_PID 1 #define P_PGID 2 #define P_PIDFD 3 #endif # 23 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/linux/wait.h" 3 4 #endif /* wait.h expanded by -frewrite-includes */ # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/wait.h" 2 3 4 /** Returns the exit status from a process for which `WIFEXITED` is true. */ #define WEXITSTATUS(__status) (((__status) & 0xff00) >> 8) /** Returns true if a process dumped core. */ #define WCOREDUMP(__status) ((__status) & 0x80) /** Returns the terminating signal from a process, or 0 if it exited normally. */ #define WTERMSIG(__status) ((__status) & 0x7f) /** Returns the signal that stopped the process, if `WIFSTOPPED` is true. */ #define WSTOPSIG(__status) WEXITSTATUS(__status) /** Returns true if the process exited normally. */ #define WIFEXITED(__status) (WTERMSIG(__status) == 0) /** Returns true if the process was stopped by a signal. */ #define WIFSTOPPED(__status) (((__status) & 0xff) == 0x7f) /** Returns true if the process was terminated by a signal. */ #define WIFSIGNALED(__status) (WTERMSIG((__status)+1) >= 2) /** Returns true if the process was resumed . */ #define WIFCONTINUED(__status) ((__status) == 0xffff) /** Constructs a status value from the given exit code and signal number. */ #define W_EXITCODE(__exit_code, __signal_number) ((__exit_code) << 8 | (__signal_number)) /** Constructs a status value for a process stopped by the given signal. */ #define W_STOPCODE(__signal_number) ((__signal_number) << 8 | 0x7f) #endif /* wait.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* malloc.h expanded by -frewrite-includes */ #include #else /* malloc.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 1 3 4 /* * Copyright (C) 2012 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. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 18 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 /** * @file malloc.h * @brief Heap memory allocation. * * [Debugging Native Memory Use](https://source.android.com/devices/tech/debug/native-memory) * is the canonical source for documentation on Android's heap debugging * features. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 28 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 # 29 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 29 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 4 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 4 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 __BEGIN_DECLS #define __BIONIC_ALLOC_SIZE(...) __attribute__((__alloc_size__(__VA_ARGS__))) /** * [malloc(3)](http://man7.org/linux/man-pages/man3/malloc.3.html) allocates * memory on the heap. * * Returns a pointer to the allocated memory on success and returns a null * pointer and sets `errno` on failure. * * Note that Android (like most Unix systems) allows "overcommit". This * allows processes to allocate more memory than the system has, provided * they don't use it all. This works because only "dirty" pages that have * been written to actually require physical memory. In practice, this * means that it's rare to see memory allocation functions return a null * pointer, and that a non-null pointer does not mean that you actually * have all of the memory you asked for. * * Note also that the Linux Out Of Memory (OOM) killer behaves differently * for code run via `adb shell`. The assumption is that if you ran * something via `adb shell` you're a developer who actually wants the * device to do what you're asking it to do _even if_ that means killing * other processes. Obviously this is not the case for apps, which will * be killed in preference to killing other processes. */ void* _Nullable malloc(size_t __byte_count) __mallocfunc __BIONIC_ALLOC_SIZE(1) __wur; /** * [calloc(3)](http://man7.org/linux/man-pages/man3/calloc.3.html) allocates * and clears memory on the heap. * * Returns a pointer to the allocated memory on success and returns a null * pointer and sets `errno` on failure (but see the notes for malloc()). */ void* _Nullable calloc(size_t __item_count, size_t __item_size) __mallocfunc __BIONIC_ALLOC_SIZE(1,2) __wur; /** * [realloc(3)](http://man7.org/linux/man-pages/man3/realloc.3.html) resizes * allocated memory on the heap. * * Returns a pointer (which may be different from `__ptr`) to the resized * memory on success and returns a null pointer and sets `errno` on failure * (but see the notes for malloc()). */ void* _Nullable realloc(void* _Nullable __ptr, size_t __byte_count) __BIONIC_ALLOC_SIZE(2) __wur; /** * [reallocarray(3)](http://man7.org/linux/man-pages/man3/realloc.3.html) resizes * allocated memory on the heap. * * Equivalent to `realloc(__ptr, __item_count * __item_size)` but fails if the * multiplication overflows. * * Returns a pointer (which may be different from `__ptr`) to the resized * memory on success and returns a null pointer and sets `errno` on failure * (but see the notes for malloc()). */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 29 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 92 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 void* _Nullable reallocarray(void* _Nullable __ptr, size_t __item_count, size_t __item_size) __BIONIC_ALLOC_SIZE(2, 3) __wur __INTRODUCED_IN(29); #endif /* __ANDROID_API__ >= 29 */ # 94 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 /** * [free(3)](http://man7.org/linux/man-pages/man3/free.3.html) deallocates * memory on the heap. */ void free(void* _Nullable __ptr); /** * [memalign(3)](http://man7.org/linux/man-pages/man3/memalign.3.html) allocates * memory on the heap with the required alignment. * * Returns a pointer to the allocated memory on success and returns a null * pointer and sets `errno` on failure (but see the notes for malloc()). * * See also posix_memalign(). */ void* _Nullable memalign(size_t __alignment, size_t __byte_count) __mallocfunc __BIONIC_ALLOC_SIZE(2) __wur; /** * [malloc_usable_size(3)](http://man7.org/linux/man-pages/man3/malloc_usable_size.3.html) * returns the actual size of the given heap block. */ size_t malloc_usable_size(const void* _Nullable __ptr); #define __MALLINFO_BODY \ /** Total number of non-mmapped bytes currently allocated from OS. */ \ size_t arena; \ /** Number of free chunks. */ \ size_t ordblks; \ /** (Unused.) */ \ size_t smblks; \ /** (Unused.) */ \ size_t hblks; \ /** Total number of bytes in mmapped regions. */ \ size_t hblkhd; \ /** Maximum total allocated space; greater than total if trimming has occurred. */ \ size_t usmblks; \ /** (Unused.) */ \ size_t fsmblks; \ /** Total allocated space (normal or mmapped.) */ \ size_t uordblks; \ /** Total free space. */ \ size_t fordblks; \ /** Upper bound on number of bytes releasable by a trim operation. */ \ size_t keepcost; #ifndef STRUCT_MALLINFO_DECLARED #define STRUCT_MALLINFO_DECLARED 1 struct mallinfo { __MALLINFO_BODY }; #endif # 145 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 /** * [mallinfo(3)](http://man7.org/linux/man-pages/man3/mallinfo.3.html) returns * information about the current state of the heap. Note that mallinfo() is * inherently unreliable and consider using malloc_info() instead. */ struct mallinfo mallinfo(void); /** * On Android the struct mallinfo and struct mallinfo2 are the same. */ struct mallinfo2 { __MALLINFO_BODY }; /** * [mallinfo2(3)](http://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns * information about the current state of the heap. Note that mallinfo2() is * inherently unreliable and consider using malloc_info() instead. */ struct mallinfo2 mallinfo2(void) __RENAME(mallinfo); /** * [malloc_info(3)](http://man7.org/linux/man-pages/man3/malloc_info.3.html) * writes information about the current state of the heap to the given stream. * * The XML structure for malloc_info() is as follows: * ``` * * * INT * INT * INT * INT * * INT * INT * INT * * * * * * ``` * * Available since API level 23. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 192 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 int malloc_info(int __must_be_zero, FILE* _Nonnull __fp) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 194 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 /** * mallopt() option to set the decay time. Valid values are -1, 0 and 1. * -1 : Disable the releasing of unused pages. This value is available since * API level 35. * 0 : Release the unused pages immediately. * 1 : Release the unused pages at a device-specific interval. * * Available since API level 27. */ #define M_DECAY_TIME (-100) /** * mallopt() option to immediately purge any memory not in use. This * will release the memory back to the kernel. The value is ignored. * * Available since API level 28. */ #define M_PURGE (-101) /** * mallopt() option to immediately purge all possible memory back to * the kernel. This call can take longer than a normal purge since it * examines everything. In some cases, it can take more than twice the * time of a M_PURGE call. The value is ignored. * * Available since API level 34. */ #define M_PURGE_ALL (-104) /** * mallopt() option to tune the allocator's choice of memory tags to * make it more likely that a certain class of memory errors will be * detected. This is only relevant if MTE is enabled in this process * and ignored otherwise. The value argument should be one of the * M_MEMTAG_TUNING_* flags. * NOTE: This is only available in scudo. * * Available since API level 31. */ #define M_MEMTAG_TUNING (-102) /** * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables * deterministic detection of linear buffer overflow and underflow * bugs by assigning distinct tag values to adjacent allocations. This * mode has a slightly reduced chance to detect use-after-free bugs * because only half of the possible tag values are available for each * memory location. * * Please keep in mind that MTE can not detect overflow within the * same tag granule (16-byte aligned chunk), and can miss small * overflows even in this mode. Such overflow can not be the cause of * a memory corruption, because the memory within one granule is never * used for multiple allocations. */ #define M_MEMTAG_TUNING_BUFFER_OVERFLOW 0 /** * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables * independently randomized tags for uniform ~93% probability of * detecting both spatial (buffer overflow) and temporal (use after * free) bugs. */ #define M_MEMTAG_TUNING_UAF 1 /** * mallopt() option for per-thread memory initialization tuning. * The value argument should be one of: * 1: Disable automatic heap initialization on this thread only. * If memory tagging is enabled, disable as much as possible of the * memory tagging initialization for this thread. * 0: Normal behavior. * * Available since API level 31. */ #define M_THREAD_DISABLE_MEM_INIT (-103) /** * mallopt() option to set the maximum number of items in the secondary * cache of the scudo allocator. * * Available since API level 31. */ #define M_CACHE_COUNT_MAX (-200) /** * mallopt() option to set the maximum size in bytes of a cacheable item in * the secondary cache of the scudo allocator. * * Available since API level 31. */ #define M_CACHE_SIZE_MAX (-201) /** * mallopt() option to increase the maximum number of shared thread-specific * data structures that can be created. This number cannot be decreased, * only increased and only applies to the scudo allocator. * * Available since API level 31. */ #define M_TSDS_COUNT_MAX (-202) /** * mallopt() option to decide whether heap memory is zero-initialized on * allocation across the whole process. May be called at any time, including * when multiple threads are running. An argument of zero indicates memory * should not be zero-initialized, any other value indicates to initialize heap * memory to zero. * * Note that this memory mitigation is only implemented in scudo and therefore * this will have no effect when using another allocator (such as jemalloc on * Android Go devices). * * Available since API level 31. */ #define M_BIONIC_ZERO_INIT (-203) /** * mallopt() option to change the heap tagging state. May be called at any * time, including when multiple threads are running. * The value must be one of the M_HEAP_TAGGING_LEVEL_ constants. * NOTE: This is only available in scudo. * * Available since API level 31. */ #define M_BIONIC_SET_HEAP_TAGGING_LEVEL (-204) /** * Constants for use with the M_BIONIC_SET_HEAP_TAGGING_LEVEL mallopt() option. */ enum HeapTaggingLevel { /** * Disable heap tagging and memory tag checks (if supported). * Heap tagging may not be re-enabled after being disabled. */ M_HEAP_TAGGING_LEVEL_NONE = 0, #define M_HEAP_TAGGING_LEVEL_NONE M_HEAP_TAGGING_LEVEL_NONE /** * Address-only tagging. Heap pointers have a non-zero tag in the * most significant ("top") byte which is checked in free(). Memory * accesses ignore the tag using arm64's Top Byte Ignore (TBI) feature. */ M_HEAP_TAGGING_LEVEL_TBI = 1, #define M_HEAP_TAGGING_LEVEL_TBI M_HEAP_TAGGING_LEVEL_TBI /** * Enable heap tagging and asynchronous memory tag checks (if supported). * Disable stack trace collection. */ M_HEAP_TAGGING_LEVEL_ASYNC = 2, #define M_HEAP_TAGGING_LEVEL_ASYNC M_HEAP_TAGGING_LEVEL_ASYNC /** * Enable heap tagging and synchronous memory tag checks (if supported). * Enable stack trace collection. */ M_HEAP_TAGGING_LEVEL_SYNC = 3, #define M_HEAP_TAGGING_LEVEL_SYNC M_HEAP_TAGGING_LEVEL_SYNC }; /** * mallopt() option to print human readable statistics about the memory * allocator to the log. There is no format for this data, each allocator * can use a different format, and the data that is printed can * change at any time. This is expected to be used as a debugging aid. * * Available since API level 35. */ #define M_LOG_STATS (-205) /** * [mallopt(3)](http://man7.org/linux/man-pages/man3/mallopt.3.html) modifies * heap behavior. Values of `__option` are the `M_` constants from this header. * * Returns 1 on success, 0 on error. * * Available since API level 26. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 369 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 int mallopt(int __option, int __value) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 371 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 /** * [__malloc_hook(3)](http://man7.org/linux/man-pages/man3/__malloc_hook.3.html) * is called to implement malloc(). By default this points to the system's * implementation. * * Available since API level 28. * * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md) */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 384 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 extern void* _Nonnull (*volatile _Nonnull __malloc_hook)(size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28); /** * [__realloc_hook(3)](http://man7.org/linux/man-pages/man3/__realloc_hook.3.html) * is called to implement realloc(). By default this points to the system's * implementation. * * Available since API level 28. * * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md) */ extern void* _Nonnull (*volatile _Nonnull __realloc_hook)(void* _Nullable __ptr, size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28); /** * [__free_hook(3)](http://man7.org/linux/man-pages/man3/__free_hook.3.html) * is called to implement free(). By default this points to the system's * implementation. * * Available since API level 28. * * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md) */ extern void (*volatile _Nonnull __free_hook)(void* _Nullable __ptr, const void* _Nonnull __caller) __INTRODUCED_IN(28); /** * [__memalign_hook(3)](http://man7.org/linux/man-pages/man3/__memalign_hook.3.html) * is called to implement memalign(). By default this points to the system's * implementation. * * Available since API level 28. * * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md) */ extern void* _Nonnull (*volatile _Nonnull __memalign_hook)(size_t __alignment, size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 419 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/malloc.h" 3 4 __END_DECLS #endif /* malloc.h expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 4 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 4 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 __BEGIN_DECLS #define EXIT_FAILURE 1 #define EXIT_SUCCESS 0 __noreturn void abort(void) __attribute__((__nomerge__)); __noreturn void exit(int __status); __noreturn void _Exit(int __status); int atexit(void (* _Nonnull __fn)(void)); int at_quick_exit(void (* _Nonnull __fn)(void)); void quick_exit(int __status) __noreturn; char* _Nullable getenv(const char* _Nonnull __name); int putenv(char* _Nonnull __assignment); int setenv(const char* _Nonnull __name, const char* _Nonnull __value, int __overwrite); int unsetenv(const char* _Nonnull __name); int clearenv(void); char* _Nullable mkdtemp(char* _Nonnull __template); char* _Nullable mktemp(char* _Nonnull __template) __attribute__((__deprecated__("mktemp is unsafe, use mkstemp or tmpfile instead"))); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 64 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 int mkostemp64(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23); int mkostemp(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23); int mkostemps64(char* _Nonnull __template, int __suffix_length, int __flags) __INTRODUCED_IN(23); int mkostemps(char* _Nonnull __template, int __suffix_length, int __flags) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 69 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 int mkstemp64(char* _Nonnull __template); int mkstemp(char* _Nonnull __template); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 74 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 int mkstemps64(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 76 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 int mkstemps(char* _Nonnull __template, int __flags); long strtol(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base); long long strtoll(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base); unsigned long strtoul(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base); unsigned long long strtoull(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base); int posix_memalign(void* _Nullable * _Nullable __memptr, size_t __alignment, size_t __size); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 28 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 void* _Nullable aligned_alloc(size_t __alignment, size_t __size) __INTRODUCED_IN(28); #endif /* __ANDROID_API__ >= 28 */ # 90 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 double strtod(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr); long double strtold(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 97 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 unsigned long strtoul_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 99 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 int atoi(const char* _Nonnull __s) __attribute_pure__; long atol(const char* _Nonnull __s) __attribute_pure__; long long atoll(const char* _Nonnull __s) __attribute_pure__; __wur char* _Nullable realpath(const char* _Nonnull __path, char* _Nullable __resolved); /** * [system(3)](http://man7.org/linux/man-pages/man3/system.3.html) executes * the given command in a new shell process. * * On Android, the special case of `system(NULL)` always returns 1, * as specified by POSIX. Passing `NULL` to determine whether or * not a shell is available is not portable. Callers should just try * the command they actually want to run, since there are many reasons * why it might fail, both temporarily (for lack of resources, say) * or permanently (for lack of permission, say). * * Returns -1 and sets errno if process creation fails; returns a * [waitpid(2)](http://man7.org/linux/man-pages/man2/waitpid.2.html) * status otherwise. */ int system(const char* _Nonnull __command); void* _Nullable bsearch(const void* _Nonnull __key, const void* _Nullable __base, size_t __nmemb, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull __lhs, const void* _Nonnull __rhs)); void qsort(void* _Nullable __base, size_t __nmemb, size_t __size, int (* _Nonnull __comparator)(const void* _Nullable __lhs, const void* _Nullable __rhs)); uint32_t arc4random(void); uint32_t arc4random_uniform(uint32_t __upper_bound); void arc4random_buf(void* _Nonnull __buf, size_t __n); #define RAND_MAX 0x7fffffff int rand_r(unsigned int* _Nonnull __seed_ptr); double drand48(void); double erand48(unsigned short __xsubi[_Nonnull 3]); long jrand48(unsigned short __xsubi[_Nonnull 3]); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 141 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 void lcong48(unsigned short __param[_Nonnull 7]) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 143 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 long lrand48(void); long mrand48(void); long nrand48(unsigned short __xsubi[_Nonnull 3]); unsigned short* _Nonnull seed48(unsigned short __seed16v[_Nonnull 3]); void srand48(long __seed); char* _Nullable initstate(unsigned int __seed, char* _Nonnull __state, size_t __n); char* _Nullable setstate(char* _Nonnull __state); int getpt(void); int posix_openpt(int __flags); char* _Nullable ptsname(int __fd); int ptsname_r(int __fd, char* _Nonnull __buf, size_t __n); int unlockpt(int __fd); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 int getsubopt(char* _Nonnull * _Nonnull __option, char* _Nonnull const* _Nonnull __tokens, char* _Nullable * _Nonnull __value_ptr) __INTRODUCED_IN(26); #endif /* __ANDROID_API__ >= 26 */ # 163 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; div_t div(int __numerator, int __denominator) __attribute_const__; typedef struct { long int quot; long int rem; } ldiv_t; ldiv_t ldiv(long __numerator, long __denominator) __attribute_const__; typedef struct { long long int quot; long long int rem; } lldiv_t; lldiv_t lldiv(long long __numerator, long long __denominator) __attribute_const__; /** * [getloadavg(3)](http://man7.org/linux/man-pages/man3/getloadavg.3.html) queries the * number of runnable processes averaged over time. The Linux kernel supports averages * over the last 1, 5, and 15 minutes. * * Returns the number of samples written to `__averages` (at most 3), and returns -1 on failure. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 29 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 195 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 int getloadavg(double __averages[_Nonnull], int __n) __INTRODUCED_IN(29); #endif /* __ANDROID_API__ >= 29 */ # 197 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 /* BSD compatibility. */ const char* _Nullable getprogname(void); void setprogname(const char* _Nonnull __name); int mblen(const char* _Nullable __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26); size_t mbstowcs(wchar_t* _Nullable __dst, const char* _Nullable __src, size_t __n); int mbtowc(wchar_t* _Nullable __wc_ptr, const char* _Nullable __s, size_t __n); int wctomb(char* _Nullable __dst, wchar_t __wc); size_t wcstombs(char* _Nullable __dst, const wchar_t* _Nullable __src, size_t __n); size_t __ctype_get_mb_cur_max(void); #define MB_CUR_MAX __ctype_get_mb_cur_max() #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 214 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 214 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 # 215 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 #endif # 216 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 int abs(int __x) __attribute_const__; long labs(long __x) __attribute_const__; long long llabs(long long __x) __attribute_const__; float strtof(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr); double atof(const char* _Nonnull __s) __attribute_pure__; int rand(void); void srand(unsigned int __seed); long random(void); void srandom(unsigned int __seed); int grantpt(int __fd); long long strtoll_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l); unsigned long long strtoull_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l); long double strtold_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 26 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 double strtod_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(26); float strtof_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(26); long strtol_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int, locale_t _Nonnull __l) __INTRODUCED_IN(26); #else # 238 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 // Implemented as static inlines before 26. #endif # 240 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 __END_DECLS #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* legacy_stdlib_inlines.h expanded by -frewrite-includes */ #include #else /* legacy_stdlib_inlines.h expanded by -frewrite-includes */ # 243 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 1 3 4 /* * Copyright (C) 2015 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ < 26 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 __BEGIN_DECLS static __inline double strtod_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) { return strtod(__s, __end_ptr); } static __inline float strtof_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) { return strtof(__s, __end_ptr); } static __inline long strtol_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) { return strtol(__s, __end_ptr, __base); } __END_DECLS #endif # 56 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/legacy_stdlib_inlines.h" 3 4 #endif /* legacy_stdlib_inlines.h expanded by -frewrite-includes */ # 244 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 2 3 4 #endif /* _STDLIB_H */ # 246 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/stdlib.h" 3 4 #endif /* stdlib.h expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 20 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "vpx/vpx_integer.h" #endif /* expanded by -frewrite-includes */ # 22 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" # 23 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 25 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" extern "C" { #endif # 27 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" void *vpx_memalign(size_t align, size_t size); void *vpx_malloc(size_t size); void *vpx_calloc(size_t num, size_t size); void vpx_free(void *memblk); #if 0 /* disabled by -frewrite-includes */ #if CONFIG_VP9_HIGHBITDEPTH #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 34 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" static INLINE void *vpx_memset16(void *dest, int val, size_t length) { size_t i; uint16_t *dest16 = (uint16_t *)dest; for (i = 0; i < length; i++) *dest16++ = val; return dest; } #endif # 41 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* string.h expanded by -frewrite-includes */ #include #else /* string.h expanded by -frewrite-includes */ # 42 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 1 3 4 /* * Copyright (C) 2008 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _STRING_H #define _STRING_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 33 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 35 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #else # 37 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 85 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 4 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 4 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 99 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 109 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 114 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 119 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 124 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 1 3 4 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/__stddef_offsetof.h" 3 4 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 # 136 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "../../third_party/llvm-build/Release+Asserts/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 # 35 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* strcasecmp.h expanded by -frewrite-includes */ #include #else /* strcasecmp.h expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 1 3 4 /* * Copyright (C) 2016 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 30 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 /** * @file bits/strcasecmp.h * @brief Case-insensitive string comparison. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 # 39 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 __BEGIN_DECLS /** * [strcasecmp(3)](http://man7.org/linux/man-pages/man3/strcasecmp.3.html) compares two strings * ignoring case. * * Returns an integer less than, equal to, or greater than zero if the first string is less than, * equal to, or greater than the second string (ignoring case). */ int strcasecmp(const char* _Nonnull __s1, const char* _Nonnull __s2) __attribute_pure__; /** * Like strcasecmp() but taking a `locale_t`. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 56 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 int strcasecmp_l(const char* _Nonnull __s1, const char* _Nonnull __s2, locale_t _Nonnull __l) __attribute_pure__ __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 58 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 /** * [strncasecmp(3)](http://man7.org/linux/man-pages/man3/strncasecmp.3.html) compares the first * `n` bytes of two strings ignoring case. * * Returns an integer less than, equal to, or greater than zero if the first `n` bytes of the * first string is less than, equal to, or greater than the first `n` bytes of the second * string (ignoring case). */ int strncasecmp(const char* _Nonnull __s1, const char* _Nonnull __s2, size_t __n) __attribute_pure__; /** * Like strncasecmp() but taking a `locale_t`. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 75 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 int strncasecmp_l(const char* _Nonnull __s1, const char* _Nonnull __s2, size_t __n, locale_t _Nonnull __l) __attribute_pure__ __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 77 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/bits/strcasecmp.h" 3 4 __END_DECLS #endif /* strcasecmp.h expanded by -frewrite-includes */ # 37 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 2 3 4 __BEGIN_DECLS #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_BSD) || defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* strings.h expanded by -frewrite-includes */ #include #else /* strings.h expanded by -frewrite-includes */ # 41 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 # 1 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 1 3 4 /* $NetBSD: strings.h,v 1.10 2005/02/03 04:39:32 perry Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Klaus Klein. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #if 0 /* expanded by -frewrite-includes */ #pragma once #endif /* expanded by -frewrite-includes */ # 40 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 /** * @file strings.h * @brief Extra string functions. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 46 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 # 48 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 48 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 # 49 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 # 51 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__BIONIC_STRINGS_INLINE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 53 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 #define __BIONIC_STRINGS_INLINE static __inline #endif # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 #undef ffs #undef ffsl #undef ffsll __BEGIN_DECLS /** Deprecated. Use memmove() instead. */ #define bcopy(b1, b2, len) __bionic_bcopy((b1), (b2), (len)) static __inline __always_inline void __bionic_bcopy(const void* _Nonnull b1, void* _Nonnull b2, size_t len) { __builtin_memmove(b2, b1, len); } /** Deprecated. Use memset() instead. */ #define bzero(b, len) __bionic_bzero((b), (len)) static __inline __always_inline void __bionic_bzero(void* _Nonnull b, size_t len) { __builtin_memset(b, 0, len); } /** * [ffs(3)](http://man7.org/linux/man-pages/man3/ffs.3.html) finds the * first set bit in `__n`. * * Returns 0 if no bit is set, or the index of the lowest set bit (counting * from 1) otherwise. */ __BIONIC_STRINGS_INLINE int ffs(int __n) { return __builtin_ffs(__n); } /** * [ffsl(3)](http://man7.org/linux/man-pages/man3/ffsl.3.html) finds the * first set bit in `__n`. * * Returns 0 if no bit is set, or the index of the lowest set bit (counting * from 1) otherwise. */ __BIONIC_STRINGS_INLINE int ffsl(long __n) { return __builtin_ffsl(__n); } /** * [ffsll(3)](http://man7.org/linux/man-pages/man3/ffsll.3.html) finds the * first set bit in `__n`. * * Returns 0 if no bit is set, or the index of the lowest set bit (counting * from 1) otherwise. */ __BIONIC_STRINGS_INLINE int ffsll(long long __n) { return __builtin_ffsll(__n); } #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 108 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 # 109 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 #endif # 110 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/strings.h" 3 4 __END_DECLS #endif /* strings.h expanded by -frewrite-includes */ # 42 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 2 3 4 #endif # 43 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 void* _Nullable memccpy(void* _Nonnull __dst, const void* _Nonnull __src, int __stop_char, size_t __n); void* _Nullable memchr(const void* _Nonnull __s, int __ch, size_t __n) __attribute_pure__; #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 47 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 extern "C++" void* _Nullable memrchr(void* _Nonnull __s, int __ch, size_t __n) __RENAME(memrchr) __attribute_pure__; extern "C++" const void* _Nullable memrchr(const void* _Nonnull __s, int __ch, size_t __n) __RENAME(memrchr) __attribute_pure__; #else # 50 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 void* _Nullable memrchr(const void* _Nonnull __s, int __ch, size_t __n) __attribute_pure__; #endif # 52 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 int memcmp(const void* _Nonnull __lhs, const void* _Nonnull __rhs, size_t __n) __attribute_pure__; void* _Nonnull memcpy(void* _Nonnull, const void* _Nonnull, size_t); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 55 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 57 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 void* _Nonnull mempcpy(void* _Nonnull __dst, const void* _Nonnull __src, size_t __n) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 59 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #endif # 61 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 void* _Nonnull memmove(void* _Nonnull __dst, const void* _Nonnull __src, size_t __n); /** * [memset(3)](http://man7.org/linux/man-pages/man3/memset.3.html) writes the * bottom 8 bits of the given int to the next `n` bytes of `dst`. * * Returns `dst`. */ void* _Nonnull memset(void* _Nonnull __dst, int __ch, size_t __n); /** * [memset_explicit(3)](http://man7.org/linux/man-pages/man3/memset_explicit.3.html) * writes the bottom 8 bits of the given int to the next `n` bytes of `dst`, * but won't be optimized out by the compiler. * * Returns `dst`. */ #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 34 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 80 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 void* _Nonnull memset_explicit(void* _Nonnull __dst, int __ch, size_t __n) __INTRODUCED_IN(34); #endif /* __ANDROID_API__ >= 34 */ # 82 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 void* _Nullable memmem(const void* _Nonnull __haystack, size_t __haystack_size, const void* _Nonnull __needle, size_t __needle_size) __attribute_pure__; char* _Nullable strchr(const char* _Nonnull __s, int __ch) __attribute_pure__; char* _Nullable __strchr_chk(const char* _Nonnull __s, int __ch, size_t __n); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 89 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 92 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 extern "C++" char* _Nonnull strchrnul(char* _Nonnull __s, int __ch) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24); extern "C++" const char* _Nonnull strchrnul(const char* _Nonnull __s, int __ch) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 95 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #else # 97 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 24 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 99 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 char* _Nonnull strchrnul(const char* _Nonnull __s, int __ch) __attribute_pure__ __INTRODUCED_IN(24); #endif /* __ANDROID_API__ >= 24 */ # 101 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #endif # 103 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #endif # 104 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 char* _Nullable strrchr(const char* _Nonnull __s, int __ch) __attribute_pure__; char* _Nullable __strrchr_chk(const char* _Nonnull __s, int __ch, size_t __n); size_t strlen(const char* _Nonnull __s) __attribute_pure__; size_t __strlen_chk(const char* _Nonnull __s, size_t __n); int strcmp(const char* _Nonnull __lhs, const char* _Nonnull __rhs) __attribute_pure__; char* _Nonnull stpcpy(char* _Nonnull __dst, const char* _Nonnull __src); char* _Nonnull strcpy(char* _Nonnull __dst, const char* _Nonnull __src); char* _Nonnull strcat(char* _Nonnull __dst, const char* _Nonnull __src); char* _Nullable strdup(const char* _Nonnull __s); char* _Nullable strstr(const char* _Nonnull __haystack, const char* _Nonnull __needle) __attribute_pure__; #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 119 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 extern "C++" char* _Nullable strcasestr(char* _Nonnull, const char* _Nonnull) __RENAME(strcasestr) __attribute_pure__; extern "C++" const char* _Nullable strcasestr(const char* _Nonnull, const char* _Nonnull) __RENAME(strcasestr) __attribute_pure__; #else # 122 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 char* _Nullable strcasestr(const char* _Nonnull __haystack, const char* _Nonnull __needle) __attribute_pure__; #endif # 124 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 char* _Nullable strtok(char* _Nullable __s, const char* _Nonnull __delimiter); char* _Nullable strtok_r(char* _Nullable __s, const char* _Nonnull __delimiter, char* _Nonnull * _Nonnull __pos_ptr); char* _Nonnull strerror(int __errno_value); #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 130 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 char* _Nonnull strerror_l(int __errno_value, locale_t _Nonnull __l) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 132 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) && __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 134 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 char* _Nonnull strerror_r(int __errno_value, char* _Nullable __buf, size_t __n) __RENAME(__gnu_strerror_r) __INTRODUCED_IN(23); #else /* POSIX */ # 136 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 int strerror_r(int __errno_value, char* _Nonnull __buf, size_t __n); #endif # 138 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 /** * [strerrorname_np(3)](http://man7.org/linux/man-pages/man3/strerrordesc_np.3.html) * returns the name of the errno constant corresponding to its argument. * `strerrorname_np(38)` would return "ENOSYS", because `ENOSYS` is errno 38. This * is mostly useful for error reporting in cases where a string like "ENOSYS" is * more readable than a string like "Function not implemented", which would be * returned by strerror(). * * Returns a pointer to a string, or null for unknown errno values. * * Available since API level 35. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 152 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 35 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 154 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 const char* _Nullable strerrorname_np(int __errno_value) __INTRODUCED_IN(35); #endif /* __ANDROID_API__ >= 35 */ # 156 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #endif # 158 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 /** * [strerrordesc_np(3)](http://man7.org/linux/man-pages/man3/strerrordesc_np.3.html) * is like strerror() but without localization. Since Android's strerror() * does not localize, this is the same as strerror() on Android. * * Returns a pointer to a string. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 167 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 const char* _Nonnull strerrordesc_np(int __errno_value) __RENAME(strerror); #endif # 169 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 size_t strnlen(const char* _Nonnull __s, size_t __n) __attribute_pure__; char* _Nonnull strncat(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n); char* _Nullable strndup(const char* _Nonnull __s, size_t __n); int strncmp(const char* _Nonnull __lhs, const char* _Nonnull __rhs, size_t __n) __attribute_pure__; char* _Nonnull stpncpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n); char* _Nonnull strncpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n); size_t strlcat(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n); size_t strlcpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n); size_t strcspn(const char* _Nonnull __s, const char* _Nonnull __reject) __attribute_pure__; char* _Nullable strpbrk(const char* _Nonnull __s, const char* _Nonnull __accept) __attribute_pure__; char* _Nullable strsep(char* _Nullable * _Nonnull __s_ptr, const char* _Nonnull __delimiter); size_t strspn(const char* _Nonnull __s, const char* _Nonnull __accept); char* _Nonnull strsignal(int __signal); int strcoll(const char* _Nonnull __lhs, const char* _Nonnull __rhs) __attribute_pure__; size_t strxfrm(char* __BIONIC_COMPLICATED_NULLNESS __dst, const char* _Nonnull __src, size_t __n); int strcoll_l(const char* _Nonnull __lhs, const char* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__; size_t strxfrm_l(char* __BIONIC_COMPLICATED_NULLNESS __dst, const char* _Nonnull __src, size_t __n, locale_t _Nonnull __l); #if 0 /* disabled by -frewrite-includes */ #if defined(__USE_GNU) && !defined(basename) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 194 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 /* * glibc has a basename in that's different to the POSIX one in . * It doesn't modify its argument, and in C++ it's const-correct. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 199 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 201 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 extern "C++" char* _Nonnull basename(char* _Nullable __path) __RENAME(__gnu_basename) __INTRODUCED_IN(23); extern "C++" const char* _Nonnull basename(const char* _Nonnull __path) __RENAME(__gnu_basename) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 204 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #else # 206 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __ANDROID_API__ >= 23 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 208 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 char* _Nonnull basename(const char* _Nonnull __path) __RENAME(__gnu_basename) __INTRODUCED_IN(23); #endif /* __ANDROID_API__ >= 23 */ # 210 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #endif # 212 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #endif # 213 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 215 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 215 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 # 216 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #endif # 217 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 /* Const-correct overloads. Placed after FORTIFY so we call those functions, if possible. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 220 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 /* * Use two enable_ifs so these overloads don't conflict with + are preferred over libcxx's. This can * be reduced to 1 after libcxx recognizes that we have const-correct overloads. */ #define __prefer_this_overload __enable_if(true, "preferred overload") __enable_if(true, "") extern "C++" { inline __always_inline void* _Nullable __bionic_memchr(const void* _Nonnull const s __pass_object_size, int c, size_t n) { return memchr(s, c, n); } inline __always_inline const void* _Nullable memchr(const void* _Nonnull const s __pass_object_size, int c, size_t n) __prefer_this_overload { return __bionic_memchr(s, c, n); } inline __always_inline void* _Nullable memchr(void* _Nonnull const s __pass_object_size, int c, size_t n) __prefer_this_overload { return __bionic_memchr(s, c, n); } inline __always_inline char* _Nullable __bionic_strchr(const char* _Nonnull const s __pass_object_size, int c) { return strchr(s, c); } inline __always_inline const char* _Nullable strchr(const char* _Nonnull const s __pass_object_size, int c) __prefer_this_overload { return __bionic_strchr(s, c); } inline __always_inline char* _Nullable strchr(char* _Nonnull const s __pass_object_size, int c) __prefer_this_overload { return __bionic_strchr(s, c); } inline __always_inline char* _Nullable __bionic_strrchr(const char* _Nonnull const s __pass_object_size, int c) { return strrchr(s, c); } inline __always_inline const char* _Nullable strrchr(const char* _Nonnull const s __pass_object_size, int c) __prefer_this_overload { return __bionic_strrchr(s, c); } inline __always_inline char* _Nullable strrchr(char* _Nonnull const s __pass_object_size, int c) __prefer_this_overload { return __bionic_strrchr(s, c); } /* Functions with no FORTIFY counterpart. */ inline __always_inline char* _Nullable __bionic_strstr(const char* _Nonnull h, const char* _Nonnull n) { return strstr(h, n); } inline __always_inline const char* _Nullable strstr(const char* _Nonnull h, const char* _Nonnull n) __prefer_this_overload { return __bionic_strstr(h, n); } inline __always_inline char* _Nullable strstr(char* _Nonnull h, const char* _Nonnull n) __prefer_this_overload { return __bionic_strstr(h, n); } inline __always_inline char* _Nullable __bionic_strpbrk(const char* _Nonnull h, const char* _Nonnull n) { return strpbrk(h, n); } inline __always_inline char* _Nullable strpbrk(char* _Nonnull h, const char* _Nonnull n) __prefer_this_overload { return __bionic_strpbrk(h, n); } inline __always_inline const char* _Nullable strpbrk(const char* _Nonnull h, const char* _Nonnull n) __prefer_this_overload { return __bionic_strpbrk(h, n); } } #undef __prefer_this_overload #endif # 303 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 __END_DECLS #endif # 307 "../../third_party/android_toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/string.h" 3 4 #endif /* string.h expanded by -frewrite-includes */ # 43 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" 2 #ifdef VPX_MEM_PLTFRM #if 0 /* expanded by -frewrite-includes */ #include VPX_MEM_PLTFRM #endif /* expanded by -frewrite-includes */ # 45 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" # 46 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #endif # 47 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 49 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" } #endif # 51 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #endif // VPX_VPX_MEM_VPX_MEM_H_ # 53 "../../third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h" #endif /* vpx_mem.h expanded by -frewrite-includes */ # 19 "../../third_party/libvpx/source/libvpx/vp8/common/common.h" 2 #ifdef __cplusplus extern "C" { #endif # 23 "../../third_party/libvpx/source/libvpx/vp8/common/common.h" /* Only need this for fixed-size arrays, for structs just assign. */ #define vp8_copy(Dest, Src) \ do { \ assert(sizeof(Dest) == sizeof(Src)); \ memcpy(Dest, Src, sizeof(Src)); \ } while (0) /* Use this for variably-sized arrays. */ #define vp8_copy_array(Dest, Src, N) \ do { \ assert(sizeof(*(Dest)) == sizeof(*(Src))); \ memcpy(Dest, Src, (N) * sizeof(*(Src))); \ } while (0) #define vp8_zero(Dest) memset(&(Dest), 0, sizeof(Dest)) #define vp8_zero_array(Dest, N) memset(Dest, 0, (N) * sizeof(*(Dest))) #ifdef __cplusplus } // extern "C" #endif # 47 "../../third_party/libvpx/source/libvpx/vp8/common/common.h" #endif // VPX_VP8_COMMON_COMMON_H_ # 49 "../../third_party/libvpx/source/libvpx/vp8/common/common.h" #endif /* common.h expanded by -frewrite-includes */ # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* entropymode.h expanded by -frewrite-includes */ #include "vp8/common/entropymode.h" #else /* entropymode.h expanded by -frewrite-includes */ # 27 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/entropymode.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_ENTROPYMODE_H_ #define VPX_VP8_COMMON_ENTROPYMODE_H_ #if 0 /* expanded by -frewrite-includes */ #include "onyxc_int.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/entropymode.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/entropymode.h" #if 0 /* expanded by -frewrite-includes */ #include "treecoder.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/entropymode.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/common/entropymode.h" #ifdef __cplusplus extern "C" { #endif # 20 "../../third_party/libvpx/source/libvpx/vp8/common/entropymode.h" typedef enum { SUBMVREF_NORMAL, SUBMVREF_LEFT_ZED, SUBMVREF_ABOVE_ZED, SUBMVREF_LEFT_ABOVE_SAME, SUBMVREF_LEFT_ABOVE_ZED } sumvfref_t; typedef int vp8_mbsplit[16]; #define VP8_NUMMBSPLITS 4 extern const vp8_mbsplit vp8_mbsplits[VP8_NUMMBSPLITS]; extern const int vp8_mbsplit_count[VP8_NUMMBSPLITS]; /* # of subsets */ extern const vp8_prob vp8_mbsplit_probs[VP8_NUMMBSPLITS - 1]; extern int vp8_mv_cont(const int_mv *l, const int_mv *a); #define SUBMVREF_COUNT 5 extern const vp8_prob vp8_sub_mv_ref_prob2[SUBMVREF_COUNT][VP8_SUBMVREFS - 1]; extern const unsigned int vp8_kf_default_bmode_counts[VP8_BINTRAMODES] [VP8_BINTRAMODES] [VP8_BINTRAMODES]; extern const vp8_tree_index vp8_bmode_tree[]; extern const vp8_tree_index vp8_ymode_tree[]; extern const vp8_tree_index vp8_kf_ymode_tree[]; extern const vp8_tree_index vp8_uv_mode_tree[]; extern const vp8_tree_index vp8_mbsplit_tree[]; extern const vp8_tree_index vp8_mv_ref_tree[]; extern const vp8_tree_index vp8_sub_mv_ref_tree[]; extern const struct vp8_token_struct vp8_bmode_encodings[VP8_BINTRAMODES]; extern const struct vp8_token_struct vp8_ymode_encodings[VP8_YMODES]; extern const struct vp8_token_struct vp8_kf_ymode_encodings[VP8_YMODES]; extern const struct vp8_token_struct vp8_uv_mode_encodings[VP8_UV_MODES]; extern const struct vp8_token_struct vp8_mbsplit_encodings[VP8_NUMMBSPLITS]; /* Inter mode values do not start at zero */ extern const struct vp8_token_struct vp8_mv_ref_encoding_array[VP8_MVREFS]; extern const struct vp8_token_struct vp8_sub_mv_ref_encoding_array[VP8_SUBMVREFS]; extern const vp8_tree_index vp8_small_mvtree[]; extern const struct vp8_token_struct vp8_small_mvencodings[8]; /* Key frame default mode probs */ extern const vp8_prob vp8_kf_bmode_prob[VP8_BINTRAMODES][VP8_BINTRAMODES] [VP8_BINTRAMODES - 1]; extern const vp8_prob vp8_kf_uv_mode_prob[VP8_UV_MODES - 1]; extern const vp8_prob vp8_kf_ymode_prob[VP8_YMODES - 1]; void vp8_init_mbmode_probs(VP8_COMMON *x); void vp8_default_bmode_probs(vp8_prob dest[VP8_BINTRAMODES - 1]); void vp8_kf_default_bmode_probs( vp8_prob dest[VP8_BINTRAMODES][VP8_BINTRAMODES][VP8_BINTRAMODES - 1]); #ifdef __cplusplus } // extern "C" #endif # 87 "../../third_party/libvpx/source/libvpx/vp8/common/entropymode.h" #endif // VPX_VP8_COMMON_ENTROPYMODE_H_ # 89 "../../third_party/libvpx/source/libvpx/vp8/common/entropymode.h" #endif /* entropymode.h expanded by -frewrite-includes */ # 28 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* reconinter.h expanded by -frewrite-includes */ #include "vp8/common/reconinter.h" #else /* reconinter.h expanded by -frewrite-includes */ # 28 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/reconinter.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_RECONINTER_H_ #define VPX_VP8_COMMON_RECONINTER_H_ #ifdef __cplusplus extern "C" { #endif # 17 "../../third_party/libvpx/source/libvpx/vp8/common/reconinter.h" void vp8_build_inter_predictors_mb(MACROBLOCKD *xd); void vp8_build_inter16x16_predictors_mb(MACROBLOCKD *x, unsigned char *dst_y, unsigned char *dst_u, unsigned char *dst_v, int dst_ystride, int dst_uvstride); void vp8_build_inter16x16_predictors_mby(MACROBLOCKD *x, unsigned char *dst_y, int dst_ystride); void vp8_build_inter_predictors_b(BLOCKD *d, int pitch, unsigned char *base_pre, int pre_stride, vp8_subpix_fn_t sppf); void vp8_build_inter16x16_predictors_mbuv(MACROBLOCKD *x); void vp8_build_inter4x4_predictors_mbuv(MACROBLOCKD *x); #ifdef __cplusplus } // extern "C" #endif # 35 "../../third_party/libvpx/source/libvpx/vp8/common/reconinter.h" #endif // VPX_VP8_COMMON_RECONINTER_H_ # 37 "../../third_party/libvpx/source/libvpx/vp8/common/reconinter.h" #endif /* reconinter.h expanded by -frewrite-includes */ # 29 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* reconintra.h expanded by -frewrite-includes */ #include "vp8/common/reconintra.h" #else /* reconintra.h expanded by -frewrite-includes */ # 29 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_RECONINTRA_H_ #define VPX_VP8_COMMON_RECONINTRA_H_ #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/blockd.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra.h" #ifdef __cplusplus extern "C" { #endif # 19 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra.h" void vp8_build_intra_predictors_mby_s(MACROBLOCKD *x, unsigned char *yabove_row, unsigned char *yleft, int left_stride, unsigned char *ypred_ptr, int y_stride); void vp8_build_intra_predictors_mbuv_s( MACROBLOCKD *x, unsigned char *uabove_row, unsigned char *vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char *upred_ptr, unsigned char *vpred_ptr, int pred_stride); void vp8_init_intra_predictors(void); #ifdef __cplusplus } // extern "C" #endif # 34 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra.h" #endif // VPX_VP8_COMMON_RECONINTRA_H_ # 36 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra.h" #endif /* reconintra.h expanded by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* reconintra4x4.h expanded by -frewrite-includes */ #include "vp8/common/reconintra4x4.h" #else /* reconintra4x4.h expanded by -frewrite-includes */ # 30 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_RECONINTRA4X4_H_ #define VPX_VP8_COMMON_RECONINTRA4X4_H_ #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/blockd.h" #endif /* expanded by -frewrite-includes */ # 13 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h" # 14 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h" #ifdef __cplusplus extern "C" { #endif # 18 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h" static INLINE void intra_prediction_down_copy(MACROBLOCKD *xd, unsigned char *above_right_src) { int dst_stride = xd->dst.y_stride; unsigned char *above_right_dst = xd->dst.y_buffer - dst_stride + 16; unsigned int *src_ptr = (unsigned int *)above_right_src; unsigned int *dst_ptr0 = (unsigned int *)(above_right_dst + 4 * dst_stride); unsigned int *dst_ptr1 = (unsigned int *)(above_right_dst + 8 * dst_stride); unsigned int *dst_ptr2 = (unsigned int *)(above_right_dst + 12 * dst_stride); *dst_ptr0 = *src_ptr; *dst_ptr1 = *src_ptr; *dst_ptr2 = *src_ptr; } void vp8_intra4x4_predict(unsigned char *above, unsigned char *yleft, int left_stride, B_PREDICTION_MODE b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); void vp8_init_intra4x4_predictors_internal(void); #ifdef __cplusplus } // extern "C" #endif # 44 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h" #endif // VPX_VP8_COMMON_RECONINTRA4X4_H_ # 46 "../../third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h" #endif /* reconintra4x4.h expanded by -frewrite-includes */ # 31 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if 0 /* expanded by -frewrite-includes */ #include "vp8/common/findnearmv.h" #endif /* expanded by -frewrite-includes */ # 31 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 32 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if defined(__CLANG_REWRITTEN_INCLUDES) /* quant_common.h expanded by -frewrite-includes */ #include "vp8/common/quant_common.h" #else /* quant_common.h expanded by -frewrite-includes */ # 32 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_QUANT_COMMON_H_ #define VPX_VP8_COMMON_QUANT_COMMON_H_ #if 0 /* expanded by -frewrite-includes */ #include "string.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" #if 0 /* expanded by -frewrite-includes */ #include "blockd.h" #endif /* expanded by -frewrite-includes */ # 15 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" # 16 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" #if 0 /* expanded by -frewrite-includes */ #include "onyxc_int.h" #endif /* expanded by -frewrite-includes */ # 16 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" # 17 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" #ifdef __cplusplus extern "C" { #endif # 21 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" extern int vp8_ac_yquant(int QIndex); extern int vp8_dc_quant(int QIndex, int Delta); extern int vp8_dc2quant(int QIndex, int Delta); extern int vp8_ac2quant(int QIndex, int Delta); extern int vp8_dc_uv_quant(int QIndex, int Delta); extern int vp8_ac_uv_quant(int QIndex, int Delta); #ifdef __cplusplus } // extern "C" #endif # 32 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" #endif // VPX_VP8_COMMON_QUANT_COMMON_H_ # 34 "../../third_party/libvpx/source/libvpx/vp8/common/quant_common.h" #endif /* quant_common.h expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if 0 /* expanded by -frewrite-includes */ #include "encodemb.h" #endif /* expanded by -frewrite-includes */ # 33 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 34 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if 0 /* expanded by -frewrite-includes */ #include "vp8/encoder/quantize.h" #endif /* expanded by -frewrite-includes */ # 34 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 35 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if 0 /* expanded by -frewrite-includes */ #include "vpx_dsp/variance.h" #endif /* expanded by -frewrite-includes */ # 35 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 36 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if defined(__CLANG_REWRITTEN_INCLUDES) /* system_state.h expanded by -frewrite-includes */ #include "vpx_ports/system_state.h" #else /* system_state.h expanded by -frewrite-includes */ # 36 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" 1 /* * Copyright (c) 2015 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VPX_PORTS_SYSTEM_STATE_H_ #define VPX_VPX_PORTS_SYSTEM_STATE_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" # 15 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" #ifdef __cplusplus extern "C" { #endif # 19 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" #if 0 /* disabled by -frewrite-includes */ #if (VPX_ARCH_X86 || VPX_ARCH_X86_64) && HAVE_MMX #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" extern void vpx_clear_system_state(void); #else # 23 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" #define vpx_clear_system_state() #endif // (VPX_ARCH_X86 || VPX_ARCH_X86_64) && HAVE_MMX # 25 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" #ifdef __cplusplus } // extern "C" #endif # 29 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" #endif // VPX_VPX_PORTS_SYSTEM_STATE_H_ # 31 "../../third_party/libvpx/source/libvpx/vpx_ports/system_state.h" #endif /* system_state.h expanded by -frewrite-includes */ # 37 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if 0 /* expanded by -frewrite-includes */ #include "mcomp.h" #endif /* expanded by -frewrite-includes */ # 37 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 38 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if defined(__CLANG_REWRITTEN_INCLUDES) /* rdopt.h expanded by -frewrite-includes */ #include "rdopt.h" #else /* rdopt.h expanded by -frewrite-includes */ # 38 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_ENCODER_RDOPT_H_ #define VPX_VP8_ENCODER_RDOPT_H_ #if 0 /* expanded by -frewrite-includes */ #include "./vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h" #ifdef __cplusplus extern "C" { #endif # 19 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h" #define RDCOST(RM, DM, R, D) (((128 + (R) * (RM)) >> 8) + (DM) * (D)) void vp8cx_initialize_me_consts(VP8_COMP *cpi, int QIndex); void vp8_auto_select_speed(VP8_COMP *cpi); static INLINE void insertsortmv(int arr[], int len) { int i, j, k; for (i = 1; i <= len - 1; ++i) { for (j = 0; j < i; ++j) { if (arr[j] > arr[i]) { int temp; temp = arr[i]; for (k = i; k > j; k--) arr[k] = arr[k - 1]; arr[j] = temp; } } } } static INLINE void insertsortsad(int arr[], int idx[], int len) { int i, j, k; for (i = 1; i <= len - 1; ++i) { for (j = 0; j < i; ++j) { if (arr[j] > arr[i]) { int temp, tempi; temp = arr[i]; tempi = idx[i]; for (k = i; k > j; k--) { arr[k] = arr[k - 1]; idx[k] = idx[k - 1]; } arr[j] = temp; idx[j] = tempi; } } } } void vp8_initialize_rd_consts(VP8_COMP *cpi, MACROBLOCK *x, int Qvalue); void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, int *returnrate, int *returndistortion, int *returnintra, int mb_row, int mb_col); void vp8_rd_pick_intra_mode(MACROBLOCK *x, int *rate); static INLINE void get_plane_pointers(const YV12_BUFFER_CONFIG *fb, unsigned char *plane[3], unsigned int recon_yoffset, unsigned int recon_uvoffset) { plane[0] = fb->y_buffer + recon_yoffset; plane[1] = fb->u_buffer + recon_uvoffset; plane[2] = fb->v_buffer + recon_uvoffset; } static INLINE void get_predictor_pointers(const VP8_COMP *cpi, unsigned char *plane[4][3], unsigned int recon_yoffset, unsigned int recon_uvoffset) { if (cpi->ref_frame_flags & VP8_LAST_FRAME) { get_plane_pointers(&cpi->common.yv12_fb[cpi->common.lst_fb_idx], plane[LAST_FRAME], recon_yoffset, recon_uvoffset); } if (cpi->ref_frame_flags & VP8_GOLD_FRAME) { get_plane_pointers(&cpi->common.yv12_fb[cpi->common.gld_fb_idx], plane[GOLDEN_FRAME], recon_yoffset, recon_uvoffset); } if (cpi->ref_frame_flags & VP8_ALTR_FRAME) { get_plane_pointers(&cpi->common.yv12_fb[cpi->common.alt_fb_idx], plane[ALTREF_FRAME], recon_yoffset, recon_uvoffset); } } static INLINE void get_reference_search_order(const VP8_COMP *cpi, int ref_frame_map[4]) { int i = 0; ref_frame_map[i++] = INTRA_FRAME; if (cpi->ref_frame_flags & VP8_LAST_FRAME) ref_frame_map[i++] = LAST_FRAME; if (cpi->ref_frame_flags & VP8_GOLD_FRAME) ref_frame_map[i++] = GOLDEN_FRAME; if (cpi->ref_frame_flags & VP8_ALTR_FRAME) ref_frame_map[i++] = ALTREF_FRAME; for (; i < 4; ++i) ref_frame_map[i] = -1; } void vp8_mv_pred(VP8_COMP *cpi, MACROBLOCKD *xd, const MODE_INFO *here, int_mv *mvp, int refframe, int *ref_frame_sign_bias, int *sr, int near_sadidx[]); void vp8_cal_sad(VP8_COMP *cpi, MACROBLOCKD *xd, MACROBLOCK *x, int recon_yoffset, int near_sadidx[]); int VP8_UVSSE(MACROBLOCK *x); int vp8_cost_mv_ref(MB_PREDICTION_MODE m, const int near_mv_ref_ct[4]); void vp8_set_mbmode_and_mvs(MACROBLOCK *x, MB_PREDICTION_MODE mb, int_mv *mv); #ifdef __cplusplus } // extern "C" #endif # 125 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h" #endif // VPX_VP8_ENCODER_RDOPT_H_ # 127 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h" #endif /* rdopt.h expanded by -frewrite-includes */ # 39 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if 0 /* expanded by -frewrite-includes */ #include "vpx_mem/vpx_mem.h" #endif /* expanded by -frewrite-includes */ # 39 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 40 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if defined(__CLANG_REWRITTEN_INCLUDES) /* systemdependent.h expanded by -frewrite-includes */ #include "vp8/common/systemdependent.h" #else /* systemdependent.h expanded by -frewrite-includes */ # 40 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 1 "../../third_party/libvpx/source/libvpx/vp8/common/systemdependent.h" 1 /* * Copyright (c) 2010 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VPX_VP8_COMMON_SYSTEMDEPENDENT_H_ #define VPX_VP8_COMMON_SYSTEMDEPENDENT_H_ #if 0 /* expanded by -frewrite-includes */ #include "vpx_config.h" #endif /* expanded by -frewrite-includes */ # 14 "../../third_party/libvpx/source/libvpx/vp8/common/systemdependent.h" # 15 "../../third_party/libvpx/source/libvpx/vp8/common/systemdependent.h" #ifdef __cplusplus extern "C" { #endif # 19 "../../third_party/libvpx/source/libvpx/vp8/common/systemdependent.h" struct VP8Common; void vp8_machine_specific_config(struct VP8Common *); #ifdef __cplusplus } // extern "C" #endif # 26 "../../third_party/libvpx/source/libvpx/vp8/common/systemdependent.h" #endif // VPX_VP8_COMMON_SYSTEMDEPENDENT_H_ # 28 "../../third_party/libvpx/source/libvpx/vp8/common/systemdependent.h" #endif /* systemdependent.h expanded by -frewrite-includes */ # 41 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" 2 #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 42 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #if 0 /* expanded by -frewrite-includes */ #include "denoising.h" #endif /* expanded by -frewrite-includes */ # 42 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" # 43 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" #endif # 44 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" extern void vp8_update_zbin_extra(VP8_COMP *cpi, MACROBLOCK *x); #define MAXF(a, b) (((a) > (b)) ? (a) : (b)) typedef struct rate_distortion_struct { int rate2; int rate_y; int rate_uv; int distortion2; int distortion_uv; } RATE_DISTORTION; typedef struct best_mode_struct { int yrd; int rd; int intra_rd; MB_MODE_INFO mbmode; union b_mode_info bmodes[16]; PARTITION_INFO partition; } BEST_MODE; static const int auto_speed_thresh[17] = { 1000, 200, 150, 130, 150, 125, 120, 115, 115, 115, 115, 115, 115, 115, 115, 115, 105 }; const MB_PREDICTION_MODE vp8_mode_order[MAX_MODES] = { ZEROMV, DC_PRED, NEARESTMV, NEARMV, ZEROMV, NEARESTMV, ZEROMV, NEARESTMV, NEARMV, NEARMV, V_PRED, H_PRED, TM_PRED, NEWMV, NEWMV, NEWMV, SPLITMV, SPLITMV, SPLITMV, B_PRED, }; /* This table determines the search order in reference frame priority order, * which may not necessarily match INTRA,LAST,GOLDEN,ARF */ const int vp8_ref_frame_order[MAX_MODES] = { 1, 0, 1, 1, 2, 2, 3, 3, 2, 3, 0, 0, 0, 1, 2, 3, 1, 2, 3, 0, }; static void fill_token_costs( int c[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS][MAX_ENTROPY_TOKENS], const vp8_prob p[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS] [ENTROPY_NODES]) { int i, j, k; for (i = 0; i < BLOCK_TYPES; ++i) { for (j = 0; j < COEF_BANDS; ++j) { for (k = 0; k < PREV_COEF_CONTEXTS; ++k) { /* check for pt=0 and band > 1 if block type 0 * and 0 if blocktype 1 */ if (k == 0 && j > (i == 0)) { vp8_cost_tokens2(c[i][j][k], p[i][j][k], vp8_coef_tree, 2); } else { vp8_cost_tokens(c[i][j][k], p[i][j][k], vp8_coef_tree); } } } } } static const int rd_iifactor[32] = { 4, 4, 3, 2, 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 }; /* values are now correlated to quantizer */ static const int sad_per_bit16lut[QINDEX_RANGE] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14 }; static const int sad_per_bit4lut[QINDEX_RANGE] = { 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, }; void vp8cx_initialize_me_consts(VP8_COMP *cpi, int QIndex) { cpi->mb.sadperbit16 = sad_per_bit16lut[QIndex]; cpi->mb.sadperbit4 = sad_per_bit4lut[QIndex]; } void vp8_initialize_rd_consts(VP8_COMP *cpi, MACROBLOCK *x, int Qvalue) { int q; int i; double capped_q = (Qvalue < 160) ? (double)Qvalue : 160.0; double rdconst = 2.80; vpx_clear_system_state(); /* Further tests required to see if optimum is different * for key frames, golden frames and arf frames. */ cpi->RDMULT = (int)(rdconst * (capped_q * capped_q)); /* Extend rate multiplier along side quantizer zbin increases */ if (cpi->mb.zbin_over_quant > 0) { double oq_factor; double modq; /* Experimental code using the same basic equation as used for Q above * The units of cpi->mb.zbin_over_quant are 1/128 of Q bin size */ oq_factor = 1.0 + ((double)0.0015625 * cpi->mb.zbin_over_quant); modq = (int)((double)capped_q * oq_factor); cpi->RDMULT = (int)(rdconst * (modq * modq)); } if (cpi->pass == 2 && (cpi->common.frame_type != KEY_FRAME)) { if (cpi->twopass.next_iiratio > 31) { cpi->RDMULT += (cpi->RDMULT * rd_iifactor[31]) >> 4; } else { cpi->RDMULT += (cpi->RDMULT * rd_iifactor[cpi->twopass.next_iiratio]) >> 4; } } cpi->mb.errorperbit = (cpi->RDMULT / 110); cpi->mb.errorperbit += (cpi->mb.errorperbit == 0); vp8_set_speed_features(cpi); for (i = 0; i < MAX_MODES; ++i) { x->mode_test_hit_counts[i] = 0; } q = (int)pow(Qvalue, 1.25); if (q < 8) q = 8; if (cpi->RDMULT > 1000) { cpi->RDDIV = 1; cpi->RDMULT /= 100; for (i = 0; i < MAX_MODES; ++i) { if (cpi->sf.thresh_mult[i] < INT_MAX) { x->rd_threshes[i] = cpi->sf.thresh_mult[i] * q / 100; } else { x->rd_threshes[i] = INT_MAX; } cpi->rd_baseline_thresh[i] = x->rd_threshes[i]; } } else { cpi->RDDIV = 100; for (i = 0; i < MAX_MODES; ++i) { if (cpi->sf.thresh_mult[i] < (INT_MAX / q)) { x->rd_threshes[i] = cpi->sf.thresh_mult[i] * q; } else { x->rd_threshes[i] = INT_MAX; } cpi->rd_baseline_thresh[i] = x->rd_threshes[i]; } } { /* build token cost array for the type of frame we have now */ FRAME_CONTEXT *l = &cpi->lfc_n; if (cpi->common.refresh_alt_ref_frame) { l = &cpi->lfc_a; } else if (cpi->common.refresh_golden_frame) { l = &cpi->lfc_g; } fill_token_costs(cpi->mb.token_costs, (const vp8_prob(*)[8][3][11])l->coef_probs); /* fill_token_costs( cpi->mb.token_costs, (const vp8_prob( *)[8][3][11]) cpi->common.fc.coef_probs); */ /* TODO make these mode costs depend on last,alt or gold too. (jbb) */ vp8_init_mode_costs(cpi); } } void vp8_auto_select_speed(VP8_COMP *cpi) { int milliseconds_for_compress = (int)(1000000 / cpi->framerate); milliseconds_for_compress = milliseconds_for_compress * (16 - cpi->oxcf.cpu_used) / 16; #if 0 /* disabled by -frewrite-includes */ #if 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 268 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" if (0) { FILE *f; f = fopen("speed.stt", "a"); fprintf(f, " %8ld %10ld %10ld %10ld\n", cpi->common.current_video_frame, cpi->Speed, milliseconds_for_compress, cpi->avg_pick_mode_time); fclose(f); } #endif # 280 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" if (cpi->avg_pick_mode_time < milliseconds_for_compress && (cpi->avg_encode_time - cpi->avg_pick_mode_time) < milliseconds_for_compress) { if (cpi->avg_pick_mode_time == 0) { cpi->Speed = 4; } else { if (milliseconds_for_compress * 100 < cpi->avg_encode_time * 95) { cpi->Speed += 2; cpi->avg_pick_mode_time = 0; cpi->avg_encode_time = 0; if (cpi->Speed > 16) { cpi->Speed = 16; } } if (milliseconds_for_compress * 100 > cpi->avg_encode_time * auto_speed_thresh[cpi->Speed]) { cpi->Speed -= 1; cpi->avg_pick_mode_time = 0; cpi->avg_encode_time = 0; /* In real-time mode, cpi->speed is in [4, 16]. */ if (cpi->Speed < 4) { cpi->Speed = 4; } } } } else { cpi->Speed += 4; if (cpi->Speed > 16) cpi->Speed = 16; cpi->avg_pick_mode_time = 0; cpi->avg_encode_time = 0; } } int vp8_block_error_c(short *coeff, short *dqcoeff) { int i; int error = 0; for (i = 0; i < 16; ++i) { int this_diff = coeff[i] - dqcoeff[i]; error += this_diff * this_diff; } return error; } int vp8_mbblock_error_c(MACROBLOCK *mb, int dc) { BLOCK *be; BLOCKD *bd; int i, j; int berror, error = 0; for (i = 0; i < 16; ++i) { be = &mb->block[i]; bd = &mb->e_mbd.block[i]; berror = 0; for (j = dc; j < 16; ++j) { int this_diff = be->coeff[j] - bd->dqcoeff[j]; berror += this_diff * this_diff; } error += berror; } return error; } int vp8_mbuverror_c(MACROBLOCK *mb) { BLOCK *be; BLOCKD *bd; int i; int error = 0; for (i = 16; i < 24; ++i) { be = &mb->block[i]; bd = &mb->e_mbd.block[i]; error += vp8_block_error_c(be->coeff, bd->dqcoeff); } return error; } int VP8_UVSSE(MACROBLOCK *x) { unsigned char *uptr, *vptr; unsigned char *upred_ptr = (*(x->block[16].base_src) + x->block[16].src); unsigned char *vpred_ptr = (*(x->block[20].base_src) + x->block[20].src); int uv_stride = x->block[16].src_stride; unsigned int sse1 = 0; unsigned int sse2 = 0; int mv_row = x->e_mbd.mode_info_context->mbmi.mv.as_mv.row; int mv_col = x->e_mbd.mode_info_context->mbmi.mv.as_mv.col; int offset; int pre_stride = x->e_mbd.pre.uv_stride; if (mv_row < 0) { mv_row -= 1; } else { mv_row += 1; } if (mv_col < 0) { mv_col -= 1; } else { mv_col += 1; } mv_row /= 2; mv_col /= 2; offset = (mv_row >> 3) * pre_stride + (mv_col >> 3); uptr = x->e_mbd.pre.u_buffer + offset; vptr = x->e_mbd.pre.v_buffer + offset; if ((mv_row | mv_col) & 7) { vpx_sub_pixel_variance8x8(uptr, pre_stride, mv_col & 7, mv_row & 7, upred_ptr, uv_stride, &sse2); vpx_sub_pixel_variance8x8(vptr, pre_stride, mv_col & 7, mv_row & 7, vpred_ptr, uv_stride, &sse1); sse2 += sse1; } else { vpx_variance8x8(uptr, pre_stride, upred_ptr, uv_stride, &sse2); vpx_variance8x8(vptr, pre_stride, vpred_ptr, uv_stride, &sse1); sse2 += sse1; } return sse2; } static int cost_coeffs(MACROBLOCK *mb, BLOCKD *b, int type, ENTROPY_CONTEXT *a, ENTROPY_CONTEXT *l) { int c = !type; /* start at coef 0, unless Y with Y2 */ int eob = (int)(*b->eob); int pt; /* surrounding block/prev coef predictor */ int cost = 0; short *qcoeff_ptr = b->qcoeff; VP8_COMBINEENTROPYCONTEXTS(pt, *a, *l); assert(eob <= 16); for (; c < eob; ++c) { const int v = qcoeff_ptr[vp8_default_zig_zag1d[c]]; const int t = vp8_dct_value_tokens_ptr[v].Token; cost += mb->token_costs[type][vp8_coef_bands[c]][pt][t]; cost += vp8_dct_value_cost_ptr[v]; pt = vp8_prev_token_class[t]; } if (c < 16) { cost += mb->token_costs[type][vp8_coef_bands[c]][pt][DCT_EOB_TOKEN]; } pt = (c != !type); /* is eob first coefficient; */ *a = *l = pt; return cost; } static int vp8_rdcost_mby(MACROBLOCK *mb) { int cost = 0; int b; MACROBLOCKD *x = &mb->e_mbd; ENTROPY_CONTEXT_PLANES t_above, t_left; ENTROPY_CONTEXT *ta; ENTROPY_CONTEXT *tl; memcpy(&t_above, mb->e_mbd.above_context, sizeof(ENTROPY_CONTEXT_PLANES)); memcpy(&t_left, mb->e_mbd.left_context, sizeof(ENTROPY_CONTEXT_PLANES)); ta = (ENTROPY_CONTEXT *)&t_above; tl = (ENTROPY_CONTEXT *)&t_left; for (b = 0; b < 16; ++b) { cost += cost_coeffs(mb, x->block + b, PLANE_TYPE_Y_NO_DC, ta + vp8_block2above[b], tl + vp8_block2left[b]); } cost += cost_coeffs(mb, x->block + 24, PLANE_TYPE_Y2, ta + vp8_block2above[24], tl + vp8_block2left[24]); return cost; } static void macro_block_yrd(MACROBLOCK *mb, int *Rate, int *Distortion) { int b; MACROBLOCKD *const x = &mb->e_mbd; BLOCK *const mb_y2 = mb->block + 24; BLOCKD *const x_y2 = x->block + 24; short *Y2DCPtr = mb_y2->src_diff; BLOCK *beptr; int d; vp8_subtract_mby(mb->src_diff, *(mb->block[0].base_src), mb->block[0].src_stride, mb->e_mbd.predictor, 16); /* Fdct and building the 2nd order block */ for (beptr = mb->block; beptr < mb->block + 16; beptr += 2) { mb->short_fdct8x4(beptr->src_diff, beptr->coeff, 32); *Y2DCPtr++ = beptr->coeff[0]; *Y2DCPtr++ = beptr->coeff[16]; } /* 2nd order fdct */ mb->short_walsh4x4(mb_y2->src_diff, mb_y2->coeff, 8); /* Quantization */ for (b = 0; b < 16; ++b) { mb->quantize_b(&mb->block[b], &mb->e_mbd.block[b]); } /* DC predication and Quantization of 2nd Order block */ mb->quantize_b(mb_y2, x_y2); /* Distortion */ d = vp8_mbblock_error(mb, 1) << 2; d += vp8_block_error(mb_y2->coeff, x_y2->dqcoeff); *Distortion = (d >> 4); /* rate */ *Rate = vp8_rdcost_mby(mb); } static void copy_predictor(unsigned char *dst, const unsigned char *predictor) { const unsigned int *p = (const unsigned int *)predictor; unsigned int *d = (unsigned int *)dst; d[0] = p[0]; d[4] = p[4]; d[8] = p[8]; d[12] = p[12]; } static int rd_pick_intra4x4block(MACROBLOCK *x, BLOCK *be, BLOCKD *b, B_PREDICTION_MODE *best_mode, const int *bmode_costs, ENTROPY_CONTEXT *a, ENTROPY_CONTEXT *l, int *bestrate, int *bestratey, int *bestdistortion) { B_PREDICTION_MODE mode; int best_rd = INT_MAX; int rate = 0; int distortion; ENTROPY_CONTEXT ta = *a, tempa = *a; ENTROPY_CONTEXT tl = *l, templ = *l; /* * The predictor buffer is a 2d buffer with a stride of 16. Create * a temp buffer that meets the stride requirements, but we are only * interested in the left 4x4 block * */ DECLARE_ALIGNED(16, unsigned char, best_predictor[16 * 4]); DECLARE_ALIGNED(16, short, best_dqcoeff[16]); int dst_stride = x->e_mbd.dst.y_stride; unsigned char *dst = x->e_mbd.dst.y_buffer + b->offset; unsigned char *Above = dst - dst_stride; unsigned char *yleft = dst - 1; unsigned char top_left = Above[-1]; for (mode = B_DC_PRED; mode <= B_HU_PRED; ++mode) { int this_rd; int ratey; rate = bmode_costs[mode]; vp8_intra4x4_predict(Above, yleft, dst_stride, mode, b->predictor, 16, top_left); vp8_subtract_b(be, b, 16); x->short_fdct4x4(be->src_diff, be->coeff, 32); x->quantize_b(be, b); tempa = ta; templ = tl; ratey = cost_coeffs(x, b, PLANE_TYPE_Y_WITH_DC, &tempa, &templ); rate += ratey; distortion = vp8_block_error(be->coeff, b->dqcoeff) >> 2; this_rd = RDCOST(x->rdmult, x->rddiv, rate, distortion); if (this_rd < best_rd) { *bestrate = rate; *bestratey = ratey; *bestdistortion = distortion; best_rd = this_rd; *best_mode = mode; *a = tempa; *l = templ; copy_predictor(best_predictor, b->predictor); memcpy(best_dqcoeff, b->dqcoeff, 32); } } b->bmi.as_mode = *best_mode; vp8_short_idct4x4llm(best_dqcoeff, best_predictor, 16, dst, dst_stride); return best_rd; } static int rd_pick_intra4x4mby_modes(MACROBLOCK *mb, int *Rate, int *rate_y, int *Distortion, int best_rd) { MACROBLOCKD *const xd = &mb->e_mbd; int i; int cost = mb->mbmode_cost[xd->frame_type][B_PRED]; int distortion = 0; int tot_rate_y = 0; int64_t total_rd = 0; ENTROPY_CONTEXT_PLANES t_above, t_left; ENTROPY_CONTEXT *ta; ENTROPY_CONTEXT *tl; const int *bmode_costs; memcpy(&t_above, mb->e_mbd.above_context, sizeof(ENTROPY_CONTEXT_PLANES)); memcpy(&t_left, mb->e_mbd.left_context, sizeof(ENTROPY_CONTEXT_PLANES)); ta = (ENTROPY_CONTEXT *)&t_above; tl = (ENTROPY_CONTEXT *)&t_left; intra_prediction_down_copy(xd, xd->dst.y_buffer - xd->dst.y_stride + 16); bmode_costs = mb->inter_bmode_costs; for (i = 0; i < 16; ++i) { MODE_INFO *const mic = xd->mode_info_context; const int mis = xd->mode_info_stride; B_PREDICTION_MODE best_mode = B_MODE_COUNT; int r = 0, ry = 0, d = 0; if (mb->e_mbd.frame_type == KEY_FRAME) { const B_PREDICTION_MODE A = above_block_mode(mic, i, mis); const B_PREDICTION_MODE L = left_block_mode(mic, i); bmode_costs = mb->bmode_costs[A][L]; } total_rd += rd_pick_intra4x4block( mb, mb->block + i, xd->block + i, &best_mode, bmode_costs, ta + vp8_block2above[i], tl + vp8_block2left[i], &r, &ry, &d); cost += r; distortion += d; tot_rate_y += ry; assert(best_mode != B_MODE_COUNT); mic->bmi[i].as_mode = best_mode; if (total_rd >= (int64_t)best_rd) break; } if (total_rd >= (int64_t)best_rd) return INT_MAX; *Rate = cost; *rate_y = tot_rate_y; *Distortion = distortion; return RDCOST(mb->rdmult, mb->rddiv, cost, distortion); } static int rd_pick_intra16x16mby_mode(MACROBLOCK *x, int *Rate, int *rate_y, int *Distortion) { MB_PREDICTION_MODE mode; MB_PREDICTION_MODE mode_selected = MB_MODE_COUNT; int rate, ratey; int distortion; int best_rd = INT_MAX; int this_rd; MACROBLOCKD *xd = &x->e_mbd; /* Y Search for 16x16 intra prediction mode */ for (mode = DC_PRED; mode <= TM_PRED; ++mode) { xd->mode_info_context->mbmi.mode = mode; vp8_build_intra_predictors_mby_s(xd, xd->dst.y_buffer - xd->dst.y_stride, xd->dst.y_buffer - 1, xd->dst.y_stride, xd->predictor, 16); macro_block_yrd(x, &ratey, &distortion); rate = ratey + x->mbmode_cost[xd->frame_type][xd->mode_info_context->mbmi.mode]; this_rd = RDCOST(x->rdmult, x->rddiv, rate, distortion); if (this_rd < best_rd) { mode_selected = mode; best_rd = this_rd; *Rate = rate; *rate_y = ratey; *Distortion = distortion; } } assert(mode_selected != MB_MODE_COUNT); xd->mode_info_context->mbmi.mode = mode_selected; return best_rd; } static int rd_cost_mbuv(MACROBLOCK *mb) { int b; int cost = 0; MACROBLOCKD *x = &mb->e_mbd; ENTROPY_CONTEXT_PLANES t_above, t_left; ENTROPY_CONTEXT *ta; ENTROPY_CONTEXT *tl; memcpy(&t_above, mb->e_mbd.above_context, sizeof(ENTROPY_CONTEXT_PLANES)); memcpy(&t_left, mb->e_mbd.left_context, sizeof(ENTROPY_CONTEXT_PLANES)); ta = (ENTROPY_CONTEXT *)&t_above; tl = (ENTROPY_CONTEXT *)&t_left; for (b = 16; b < 24; ++b) { cost += cost_coeffs(mb, x->block + b, PLANE_TYPE_UV, ta + vp8_block2above[b], tl + vp8_block2left[b]); } return cost; } static int rd_inter16x16_uv(VP8_COMP *cpi, MACROBLOCK *x, int *rate, int *distortion, int fullpixel) { (void)cpi; (void)fullpixel; vp8_build_inter16x16_predictors_mbuv(&x->e_mbd); vp8_subtract_mbuv(x->src_diff, x->src.u_buffer, x->src.v_buffer, x->src.uv_stride, &x->e_mbd.predictor[256], &x->e_mbd.predictor[320], 8); vp8_transform_mbuv(x); vp8_quantize_mbuv(x); *rate = rd_cost_mbuv(x); *distortion = vp8_mbuverror(x) / 4; return RDCOST(x->rdmult, x->rddiv, *rate, *distortion); } static int rd_inter4x4_uv(VP8_COMP *cpi, MACROBLOCK *x, int *rate, int *distortion, int fullpixel) { (void)cpi; (void)fullpixel; vp8_build_inter4x4_predictors_mbuv(&x->e_mbd); vp8_subtract_mbuv(x->src_diff, x->src.u_buffer, x->src.v_buffer, x->src.uv_stride, &x->e_mbd.predictor[256], &x->e_mbd.predictor[320], 8); vp8_transform_mbuv(x); vp8_quantize_mbuv(x); *rate = rd_cost_mbuv(x); *distortion = vp8_mbuverror(x) / 4; return RDCOST(x->rdmult, x->rddiv, *rate, *distortion); } static void rd_pick_intra_mbuv_mode(MACROBLOCK *x, int *rate, int *rate_tokenonly, int *distortion) { MB_PREDICTION_MODE mode; MB_PREDICTION_MODE mode_selected = MB_MODE_COUNT; int best_rd = INT_MAX; int d = 0, r = 0; int rate_to; MACROBLOCKD *xd = &x->e_mbd; for (mode = DC_PRED; mode <= TM_PRED; ++mode) { int this_rate; int this_distortion; int this_rd; xd->mode_info_context->mbmi.uv_mode = mode; vp8_build_intra_predictors_mbuv_s( xd, xd->dst.u_buffer - xd->dst.uv_stride, xd->dst.v_buffer - xd->dst.uv_stride, xd->dst.u_buffer - 1, xd->dst.v_buffer - 1, xd->dst.uv_stride, &xd->predictor[256], &xd->predictor[320], 8); vp8_subtract_mbuv(x->src_diff, x->src.u_buffer, x->src.v_buffer, x->src.uv_stride, &xd->predictor[256], &xd->predictor[320], 8); vp8_transform_mbuv(x); vp8_quantize_mbuv(x); rate_to = rd_cost_mbuv(x); this_rate = rate_to + x->intra_uv_mode_cost[xd->frame_type] [xd->mode_info_context->mbmi.uv_mode]; this_distortion = vp8_mbuverror(x) / 4; this_rd = RDCOST(x->rdmult, x->rddiv, this_rate, this_distortion); if (this_rd < best_rd) { best_rd = this_rd; d = this_distortion; r = this_rate; *rate_tokenonly = rate_to; mode_selected = mode; } } *rate = r; *distortion = d; assert(mode_selected != MB_MODE_COUNT); xd->mode_info_context->mbmi.uv_mode = mode_selected; } int vp8_cost_mv_ref(MB_PREDICTION_MODE m, const int near_mv_ref_ct[4]) { vp8_prob p[VP8_MVREFS - 1]; assert(NEARESTMV <= m && m <= SPLITMV); vp8_mv_ref_probs(p, near_mv_ref_ct); return vp8_cost_token(vp8_mv_ref_tree, p, vp8_mv_ref_encoding_array + (m - NEARESTMV)); } void vp8_set_mbmode_and_mvs(MACROBLOCK *x, MB_PREDICTION_MODE mb, int_mv *mv) { x->e_mbd.mode_info_context->mbmi.mode = mb; x->e_mbd.mode_info_context->mbmi.mv.as_int = mv->as_int; } static int labels2mode(MACROBLOCK *x, int const *labelings, int which_label, B_PREDICTION_MODE this_mode, int_mv *this_mv, int_mv *best_ref_mv, int *mvcost[2]) { MACROBLOCKD *const xd = &x->e_mbd; MODE_INFO *const mic = xd->mode_info_context; const int mis = xd->mode_info_stride; int cost = 0; int thismvcost = 0; /* We have to be careful retrieving previously-encoded motion vectors. Ones from this macroblock have to be pulled from the BLOCKD array as they have not yet made it to the bmi array in our MB_MODE_INFO. */ int i = 0; do { BLOCKD *const d = xd->block + i; const int row = i >> 2, col = i & 3; B_PREDICTION_MODE m; if (labelings[i] != which_label) continue; if (col && labelings[i] == labelings[i - 1]) { m = LEFT4X4; } else if (row && labelings[i] == labelings[i - 4]) { m = ABOVE4X4; } else { /* the only time we should do costing for new motion vector * or mode is when we are on a new label (jbb May 08, 2007) */ switch (m = this_mode) { case NEW4X4: thismvcost = vp8_mv_bit_cost(this_mv, best_ref_mv, mvcost, 102); break; case LEFT4X4: this_mv->as_int = col ? d[-1].bmi.mv.as_int : left_block_mv(mic, i); break; case ABOVE4X4: this_mv->as_int = row ? d[-4].bmi.mv.as_int : above_block_mv(mic, i, mis); break; case ZERO4X4: this_mv->as_int = 0; break; default: break; } if (m == ABOVE4X4) { /* replace above with left if same */ int_mv left_mv; left_mv.as_int = col ? d[-1].bmi.mv.as_int : left_block_mv(mic, i); if (left_mv.as_int == this_mv->as_int) m = LEFT4X4; } cost = x->inter_bmode_costs[m]; } d->bmi.mv.as_int = this_mv->as_int; x->partition_info->bmi[i].mode = m; x->partition_info->bmi[i].mv.as_int = this_mv->as_int; } while (++i < 16); cost += thismvcost; return cost; } static int rdcost_mbsegment_y(MACROBLOCK *mb, const int *labels, int which_label, ENTROPY_CONTEXT *ta, ENTROPY_CONTEXT *tl) { int cost = 0; int b; MACROBLOCKD *x = &mb->e_mbd; for (b = 0; b < 16; ++b) { if (labels[b] == which_label) { cost += cost_coeffs(mb, x->block + b, PLANE_TYPE_Y_WITH_DC, ta + vp8_block2above[b], tl + vp8_block2left[b]); } } return cost; } static unsigned int vp8_encode_inter_mb_segment(MACROBLOCK *x, int const *labels, int which_label) { int i; unsigned int distortion = 0; int pre_stride = x->e_mbd.pre.y_stride; unsigned char *base_pre = x->e_mbd.pre.y_buffer; for (i = 0; i < 16; ++i) { if (labels[i] == which_label) { BLOCKD *bd = &x->e_mbd.block[i]; BLOCK *be = &x->block[i]; vp8_build_inter_predictors_b(bd, 16, base_pre, pre_stride, x->e_mbd.subpixel_predict); vp8_subtract_b(be, bd, 16); x->short_fdct4x4(be->src_diff, be->coeff, 32); x->quantize_b(be, bd); distortion += vp8_block_error(be->coeff, bd->dqcoeff); } } return distortion; } static const unsigned int segmentation_to_sseshift[4] = { 3, 3, 2, 0 }; typedef struct { int_mv *ref_mv; int_mv mvp; int segment_rd; int segment_num; int r; int d; int segment_yrate; B_PREDICTION_MODE modes[16]; int_mv mvs[16]; unsigned char eobs[16]; int mvthresh; int *mdcounts; int_mv sv_mvp[4]; /* save 4 mvp from 8x8 */ int sv_istep[2]; /* save 2 initial step_param for 16x8/8x16 */ } BEST_SEG_INFO; static void rd_check_segment(VP8_COMP *cpi, MACROBLOCK *x, BEST_SEG_INFO *bsi, unsigned int segmentation) { int i; int const *labels; int br = 0; int bd = 0; B_PREDICTION_MODE this_mode; int label_count; int this_segment_rd = 0; int label_mv_thresh; int rate = 0; int sbr = 0; int sbd = 0; int segmentyrate = 0; vp8_variance_fn_ptr_t *v_fn_ptr; ENTROPY_CONTEXT_PLANES t_above, t_left; ENTROPY_CONTEXT_PLANES t_above_b, t_left_b; memcpy(&t_above, x->e_mbd.above_context, sizeof(ENTROPY_CONTEXT_PLANES)); memcpy(&t_left, x->e_mbd.left_context, sizeof(ENTROPY_CONTEXT_PLANES)); vp8_zero(t_above_b); vp8_zero(t_left_b); br = 0; bd = 0; v_fn_ptr = &cpi->fn_ptr[segmentation]; labels = vp8_mbsplits[segmentation]; label_count = vp8_mbsplit_count[segmentation]; /* 64 makes this threshold really big effectively making it so that we * very rarely check mvs on segments. setting this to 1 would make mv * thresh roughly equal to what it is for macroblocks */ label_mv_thresh = 1 * bsi->mvthresh / label_count; /* Segmentation method overheads */ rate = vp8_cost_token(vp8_mbsplit_tree, vp8_mbsplit_probs, vp8_mbsplit_encodings + segmentation); rate += vp8_cost_mv_ref(SPLITMV, bsi->mdcounts); this_segment_rd += RDCOST(x->rdmult, x->rddiv, rate, 0); br += rate; for (i = 0; i < label_count; ++i) { int_mv mode_mv[B_MODE_COUNT] = { { 0 }, { 0 } }; int best_label_rd = INT_MAX; B_PREDICTION_MODE mode_selected = ZERO4X4; int bestlabelyrate = 0; /* search for the best motion vector on this segment */ for (this_mode = LEFT4X4; this_mode <= NEW4X4; ++this_mode) { int this_rd; int distortion; int labelyrate; ENTROPY_CONTEXT_PLANES t_above_s, t_left_s; ENTROPY_CONTEXT *ta_s; ENTROPY_CONTEXT *tl_s; memcpy(&t_above_s, &t_above, sizeof(ENTROPY_CONTEXT_PLANES)); memcpy(&t_left_s, &t_left, sizeof(ENTROPY_CONTEXT_PLANES)); ta_s = (ENTROPY_CONTEXT *)&t_above_s; tl_s = (ENTROPY_CONTEXT *)&t_left_s; if (this_mode == NEW4X4) { int sseshift; int num00; int step_param = 0; int further_steps; int n; int thissme; int bestsme = INT_MAX; int_mv temp_mv; BLOCK *c; BLOCKD *e; /* Is the best so far sufficiently good that we can't justify * doing a new motion search. */ if (best_label_rd < label_mv_thresh) break; if (cpi->compressor_speed) { if (segmentation == BLOCK_8X16 || segmentation == BLOCK_16X8) { bsi->mvp.as_int = bsi->sv_mvp[i].as_int; if (i == 1 && segmentation == BLOCK_16X8) { bsi->mvp.as_int = bsi->sv_mvp[2].as_int; } step_param = bsi->sv_istep[i]; } /* use previous block's result as next block's MV * predictor. */ if (segmentation == BLOCK_4X4 && i > 0) { bsi->mvp.as_int = x->e_mbd.block[i - 1].bmi.mv.as_int; if (i == 4 || i == 8 || i == 12) { bsi->mvp.as_int = x->e_mbd.block[i - 4].bmi.mv.as_int; } step_param = 2; } } further_steps = (MAX_MVSEARCH_STEPS - 1) - step_param; { int sadpb = x->sadperbit4; int_mv mvp_full; mvp_full.as_mv.row = bsi->mvp.as_mv.row >> 3; mvp_full.as_mv.col = bsi->mvp.as_mv.col >> 3; /* find first label */ n = vp8_mbsplit_offset[segmentation][i]; c = &x->block[n]; e = &x->e_mbd.block[n]; { bestsme = cpi->diamond_search_sad( x, c, e, &mvp_full, &mode_mv[NEW4X4], step_param, sadpb, &num00, v_fn_ptr, x->mvcost, bsi->ref_mv); n = num00; num00 = 0; while (n < further_steps) { n++; if (num00) { num00--; } else { thissme = cpi->diamond_search_sad( x, c, e, &mvp_full, &temp_mv, step_param + n, sadpb, &num00, v_fn_ptr, x->mvcost, bsi->ref_mv); if (thissme < bestsme) { bestsme = thissme; mode_mv[NEW4X4].as_int = temp_mv.as_int; } } } } sseshift = segmentation_to_sseshift[segmentation]; /* Should we do a full search (best quality only) */ if ((cpi->compressor_speed == 0) && (bestsme >> sseshift) > 4000) { /* Check if mvp_full is within the range. */ vp8_clamp_mv(&mvp_full, x->mv_col_min, x->mv_col_max, x->mv_row_min, x->mv_row_max); thissme = vp8_full_search_sad(x, c, e, &mvp_full, sadpb, 16, v_fn_ptr, x->mvcost, bsi->ref_mv); if (thissme < bestsme) { bestsme = thissme; mode_mv[NEW4X4].as_int = e->bmi.mv.as_int; } else { /* The full search result is actually worse so * re-instate the previous best vector */ e->bmi.mv.as_int = mode_mv[NEW4X4].as_int; } } } if (bestsme < INT_MAX) { int disto; unsigned int sse; cpi->find_fractional_mv_step(x, c, e, &mode_mv[NEW4X4], bsi->ref_mv, x->errorperbit, v_fn_ptr, x->mvcost, &disto, &sse); } } /* NEW4X4 */ rate = labels2mode(x, labels, i, this_mode, &mode_mv[this_mode], bsi->ref_mv, x->mvcost); /* Trap vectors that reach beyond the UMV borders */ if (((mode_mv[this_mode].as_mv.row >> 3) < x->mv_row_min) || ((mode_mv[this_mode].as_mv.row >> 3) > x->mv_row_max) || ((mode_mv[this_mode].as_mv.col >> 3) < x->mv_col_min) || ((mode_mv[this_mode].as_mv.col >> 3) > x->mv_col_max)) { continue; } distortion = vp8_encode_inter_mb_segment(x, labels, i) / 4; labelyrate = rdcost_mbsegment_y(x, labels, i, ta_s, tl_s); rate += labelyrate; this_rd = RDCOST(x->rdmult, x->rddiv, rate, distortion); if (this_rd < best_label_rd) { sbr = rate; sbd = distortion; bestlabelyrate = labelyrate; mode_selected = this_mode; best_label_rd = this_rd; memcpy(&t_above_b, &t_above_s, sizeof(ENTROPY_CONTEXT_PLANES)); memcpy(&t_left_b, &t_left_s, sizeof(ENTROPY_CONTEXT_PLANES)); } } /*for each 4x4 mode*/ memcpy(&t_above, &t_above_b, sizeof(ENTROPY_CONTEXT_PLANES)); memcpy(&t_left, &t_left_b, sizeof(ENTROPY_CONTEXT_PLANES)); labels2mode(x, labels, i, mode_selected, &mode_mv[mode_selected], bsi->ref_mv, x->mvcost); br += sbr; bd += sbd; segmentyrate += bestlabelyrate; this_segment_rd += best_label_rd; if (this_segment_rd >= bsi->segment_rd) break; } /* for each label */ if (this_segment_rd < bsi->segment_rd) { bsi->r = br; bsi->d = bd; bsi->segment_yrate = segmentyrate; bsi->segment_rd = this_segment_rd; bsi->segment_num = segmentation; /* store everything needed to come back to this!! */ for (i = 0; i < 16; ++i) { bsi->mvs[i].as_mv = x->partition_info->bmi[i].mv.as_mv; bsi->modes[i] = x->partition_info->bmi[i].mode; bsi->eobs[i] = x->e_mbd.eobs[i]; } } } static void vp8_cal_step_param(int sr, int *sp) { int step = 0; if (sr > MAX_FIRST_STEP) { sr = MAX_FIRST_STEP; } else if (sr < 1) { sr = 1; } while (sr >>= 1) step++; *sp = MAX_MVSEARCH_STEPS - 1 - step; } static int vp8_rd_pick_best_mbsegmentation(VP8_COMP *cpi, MACROBLOCK *x, int_mv *best_ref_mv, int best_rd, int *mdcounts, int *returntotrate, int *returnyrate, int *returndistortion, int mvthresh) { int i; BEST_SEG_INFO bsi; memset(&bsi, 0, sizeof(bsi)); bsi.segment_rd = best_rd; bsi.ref_mv = best_ref_mv; bsi.mvp.as_int = best_ref_mv->as_int; bsi.mvthresh = mvthresh; bsi.mdcounts = mdcounts; for (i = 0; i < 16; ++i) { bsi.modes[i] = ZERO4X4; } if (cpi->compressor_speed == 0) { /* for now, we will keep the original segmentation order when in best quality mode */ rd_check_segment(cpi, x, &bsi, BLOCK_16X8); rd_check_segment(cpi, x, &bsi, BLOCK_8X16); rd_check_segment(cpi, x, &bsi, BLOCK_8X8); rd_check_segment(cpi, x, &bsi, BLOCK_4X4); } else { int sr; rd_check_segment(cpi, x, &bsi, BLOCK_8X8); if (bsi.segment_rd < best_rd) { int col_min = ((best_ref_mv->as_mv.col + 7) >> 3) - MAX_FULL_PEL_VAL; int row_min = ((best_ref_mv->as_mv.row + 7) >> 3) - MAX_FULL_PEL_VAL; int col_max = (best_ref_mv->as_mv.col >> 3) + MAX_FULL_PEL_VAL; int row_max = (best_ref_mv->as_mv.row >> 3) + MAX_FULL_PEL_VAL; int tmp_col_min = x->mv_col_min; int tmp_col_max = x->mv_col_max; int tmp_row_min = x->mv_row_min; int tmp_row_max = x->mv_row_max; /* Get intersection of UMV window and valid MV window to reduce # of * checks in diamond search. */ if (x->mv_col_min < col_min) x->mv_col_min = col_min; if (x->mv_col_max > col_max) x->mv_col_max = col_max; if (x->mv_row_min < row_min) x->mv_row_min = row_min; if (x->mv_row_max > row_max) x->mv_row_max = row_max; /* Get 8x8 result */ bsi.sv_mvp[0].as_int = bsi.mvs[0].as_int; bsi.sv_mvp[1].as_int = bsi.mvs[2].as_int; bsi.sv_mvp[2].as_int = bsi.mvs[8].as_int; bsi.sv_mvp[3].as_int = bsi.mvs[10].as_int; /* Use 8x8 result as 16x8/8x16's predictor MV. Adjust search range * according to the closeness of 2 MV. */ /* block 8X16 */ { sr = MAXF((abs(bsi.sv_mvp[0].as_mv.row - bsi.sv_mvp[2].as_mv.row)) >> 3, (abs(bsi.sv_mvp[0].as_mv.col - bsi.sv_mvp[2].as_mv.col)) >> 3); vp8_cal_step_param(sr, &bsi.sv_istep[0]); sr = MAXF((abs(bsi.sv_mvp[1].as_mv.row - bsi.sv_mvp[3].as_mv.row)) >> 3, (abs(bsi.sv_mvp[1].as_mv.col - bsi.sv_mvp[3].as_mv.col)) >> 3); vp8_cal_step_param(sr, &bsi.sv_istep[1]); rd_check_segment(cpi, x, &bsi, BLOCK_8X16); } /* block 16X8 */ { sr = MAXF((abs(bsi.sv_mvp[0].as_mv.row - bsi.sv_mvp[1].as_mv.row)) >> 3, (abs(bsi.sv_mvp[0].as_mv.col - bsi.sv_mvp[1].as_mv.col)) >> 3); vp8_cal_step_param(sr, &bsi.sv_istep[0]); sr = MAXF((abs(bsi.sv_mvp[2].as_mv.row - bsi.sv_mvp[3].as_mv.row)) >> 3, (abs(bsi.sv_mvp[2].as_mv.col - bsi.sv_mvp[3].as_mv.col)) >> 3); vp8_cal_step_param(sr, &bsi.sv_istep[1]); rd_check_segment(cpi, x, &bsi, BLOCK_16X8); } /* If 8x8 is better than 16x8/8x16, then do 4x4 search */ /* Not skip 4x4 if speed=0 (good quality) */ if (cpi->sf.no_skip_block4x4_search || bsi.segment_num == BLOCK_8X8) /* || (sv_segment_rd8x8-bsi.segment_rd) < sv_segment_rd8x8>>5) */ { bsi.mvp.as_int = bsi.sv_mvp[0].as_int; rd_check_segment(cpi, x, &bsi, BLOCK_4X4); } /* restore UMV window */ x->mv_col_min = tmp_col_min; x->mv_col_max = tmp_col_max; x->mv_row_min = tmp_row_min; x->mv_row_max = tmp_row_max; } } /* set it to the best */ for (i = 0; i < 16; ++i) { BLOCKD *bd = &x->e_mbd.block[i]; bd->bmi.mv.as_int = bsi.mvs[i].as_int; *bd->eob = bsi.eobs[i]; } *returntotrate = bsi.r; *returndistortion = bsi.d; *returnyrate = bsi.segment_yrate; /* save partitions */ x->e_mbd.mode_info_context->mbmi.partitioning = bsi.segment_num; x->partition_info->count = vp8_mbsplit_count[bsi.segment_num]; for (i = 0; i < x->partition_info->count; ++i) { int j; j = vp8_mbsplit_offset[bsi.segment_num][i]; x->partition_info->bmi[i].mode = bsi.modes[j]; x->partition_info->bmi[i].mv.as_mv = bsi.mvs[j].as_mv; } /* * used to set x->e_mbd.mode_info_context->mbmi.mv.as_int */ x->partition_info->bmi[15].mv.as_int = bsi.mvs[15].as_int; return bsi.segment_rd; } /* The improved MV prediction */ void vp8_mv_pred(VP8_COMP *cpi, MACROBLOCKD *xd, const MODE_INFO *here, int_mv *mvp, int refframe, int *ref_frame_sign_bias, int *sr, int near_sadidx[]) { const MODE_INFO *above = here - xd->mode_info_stride; const MODE_INFO *left = here - 1; const MODE_INFO *aboveleft = above - 1; int_mv near_mvs[8]; int near_ref[8]; int_mv mv; int vcnt = 0; int find = 0; int mb_offset; int mvx[8]; int mvy[8]; int i; mv.as_int = 0; if (here->mbmi.ref_frame != INTRA_FRAME) { near_mvs[0].as_int = near_mvs[1].as_int = near_mvs[2].as_int = near_mvs[3].as_int = near_mvs[4].as_int = near_mvs[5].as_int = near_mvs[6].as_int = near_mvs[7].as_int = 0; near_ref[0] = near_ref[1] = near_ref[2] = near_ref[3] = near_ref[4] = near_ref[5] = near_ref[6] = near_ref[7] = 0; /* read in 3 nearby block's MVs from current frame as prediction * candidates. */ if (above->mbmi.ref_frame != INTRA_FRAME) { near_mvs[vcnt].as_int = above->mbmi.mv.as_int; mv_bias(ref_frame_sign_bias[above->mbmi.ref_frame], refframe, &near_mvs[vcnt], ref_frame_sign_bias); near_ref[vcnt] = above->mbmi.ref_frame; } vcnt++; if (left->mbmi.ref_frame != INTRA_FRAME) { near_mvs[vcnt].as_int = left->mbmi.mv.as_int; mv_bias(ref_frame_sign_bias[left->mbmi.ref_frame], refframe, &near_mvs[vcnt], ref_frame_sign_bias); near_ref[vcnt] = left->mbmi.ref_frame; } vcnt++; if (aboveleft->mbmi.ref_frame != INTRA_FRAME) { near_mvs[vcnt].as_int = aboveleft->mbmi.mv.as_int; mv_bias(ref_frame_sign_bias[aboveleft->mbmi.ref_frame], refframe, &near_mvs[vcnt], ref_frame_sign_bias); near_ref[vcnt] = aboveleft->mbmi.ref_frame; } vcnt++; /* read in 5 nearby block's MVs from last frame. */ if (cpi->common.last_frame_type != KEY_FRAME) { mb_offset = (-xd->mb_to_top_edge / 128 + 1) * (xd->mode_info_stride + 1) + (-xd->mb_to_left_edge / 128 + 1); /* current in last frame */ if (cpi->lf_ref_frame[mb_offset] != INTRA_FRAME) { near_mvs[vcnt].as_int = cpi->lfmv[mb_offset].as_int; mv_bias(cpi->lf_ref_frame_sign_bias[mb_offset], refframe, &near_mvs[vcnt], ref_frame_sign_bias); near_ref[vcnt] = cpi->lf_ref_frame[mb_offset]; } vcnt++; /* above in last frame */ if (cpi->lf_ref_frame[mb_offset - xd->mode_info_stride - 1] != INTRA_FRAME) { near_mvs[vcnt].as_int = cpi->lfmv[mb_offset - xd->mode_info_stride - 1].as_int; mv_bias( cpi->lf_ref_frame_sign_bias[mb_offset - xd->mode_info_stride - 1], refframe, &near_mvs[vcnt], ref_frame_sign_bias); near_ref[vcnt] = cpi->lf_ref_frame[mb_offset - xd->mode_info_stride - 1]; } vcnt++; /* left in last frame */ if (cpi->lf_ref_frame[mb_offset - 1] != INTRA_FRAME) { near_mvs[vcnt].as_int = cpi->lfmv[mb_offset - 1].as_int; mv_bias(cpi->lf_ref_frame_sign_bias[mb_offset - 1], refframe, &near_mvs[vcnt], ref_frame_sign_bias); near_ref[vcnt] = cpi->lf_ref_frame[mb_offset - 1]; } vcnt++; /* right in last frame */ if (cpi->lf_ref_frame[mb_offset + 1] != INTRA_FRAME) { near_mvs[vcnt].as_int = cpi->lfmv[mb_offset + 1].as_int; mv_bias(cpi->lf_ref_frame_sign_bias[mb_offset + 1], refframe, &near_mvs[vcnt], ref_frame_sign_bias); near_ref[vcnt] = cpi->lf_ref_frame[mb_offset + 1]; } vcnt++; /* below in last frame */ if (cpi->lf_ref_frame[mb_offset + xd->mode_info_stride + 1] != INTRA_FRAME) { near_mvs[vcnt].as_int = cpi->lfmv[mb_offset + xd->mode_info_stride + 1].as_int; mv_bias( cpi->lf_ref_frame_sign_bias[mb_offset + xd->mode_info_stride + 1], refframe, &near_mvs[vcnt], ref_frame_sign_bias); near_ref[vcnt] = cpi->lf_ref_frame[mb_offset + xd->mode_info_stride + 1]; } vcnt++; } for (i = 0; i < vcnt; ++i) { if (near_ref[near_sadidx[i]] != INTRA_FRAME) { if (here->mbmi.ref_frame == near_ref[near_sadidx[i]]) { mv.as_int = near_mvs[near_sadidx[i]].as_int; find = 1; if (i < 3) { *sr = 3; } else { *sr = 2; } break; } } } if (!find) { for (i = 0; i < vcnt; ++i) { mvx[i] = near_mvs[i].as_mv.row; mvy[i] = near_mvs[i].as_mv.col; } insertsortmv(mvx, vcnt); insertsortmv(mvy, vcnt); mv.as_mv.row = mvx[vcnt / 2]; mv.as_mv.col = mvy[vcnt / 2]; /* sr is set to 0 to allow calling function to decide the search * range. */ *sr = 0; } } /* Set up return values */ mvp->as_int = mv.as_int; vp8_clamp_mv2(mvp, xd); } void vp8_cal_sad(VP8_COMP *cpi, MACROBLOCKD *xd, MACROBLOCK *x, int recon_yoffset, int near_sadidx[]) { /* near_sad indexes: * 0-cf above, 1-cf left, 2-cf aboveleft, * 3-lf current, 4-lf above, 5-lf left, 6-lf right, 7-lf below */ int near_sad[8] = { 0 }; BLOCK *b = &x->block[0]; unsigned char *src_y_ptr = *(b->base_src); /* calculate sad for current frame 3 nearby MBs. */ if (xd->mb_to_top_edge == 0 && xd->mb_to_left_edge == 0) { near_sad[0] = near_sad[1] = near_sad[2] = INT_MAX; } else if (xd->mb_to_top_edge == 0) { /* only has left MB for sad calculation. */ near_sad[0] = near_sad[2] = INT_MAX; near_sad[1] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, xd->dst.y_buffer - 16, xd->dst.y_stride); } else if (xd->mb_to_left_edge == 0) { /* only has left MB for sad calculation. */ near_sad[1] = near_sad[2] = INT_MAX; near_sad[0] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, xd->dst.y_buffer - xd->dst.y_stride * 16, xd->dst.y_stride); } else { near_sad[0] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, xd->dst.y_buffer - xd->dst.y_stride * 16, xd->dst.y_stride); near_sad[1] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, xd->dst.y_buffer - 16, xd->dst.y_stride); near_sad[2] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, xd->dst.y_buffer - xd->dst.y_stride * 16 - 16, xd->dst.y_stride); } if (cpi->common.last_frame_type != KEY_FRAME) { /* calculate sad for last frame 5 nearby MBs. */ unsigned char *pre_y_buffer = cpi->common.yv12_fb[cpi->common.lst_fb_idx].y_buffer + recon_yoffset; int pre_y_stride = cpi->common.yv12_fb[cpi->common.lst_fb_idx].y_stride; if (xd->mb_to_top_edge == 0) near_sad[4] = INT_MAX; if (xd->mb_to_left_edge == 0) near_sad[5] = INT_MAX; if (xd->mb_to_right_edge == 0) near_sad[6] = INT_MAX; if (xd->mb_to_bottom_edge == 0) near_sad[7] = INT_MAX; if (near_sad[4] != INT_MAX) { near_sad[4] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, pre_y_buffer - pre_y_stride * 16, pre_y_stride); } if (near_sad[5] != INT_MAX) { near_sad[5] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, pre_y_buffer - 16, pre_y_stride); } near_sad[3] = cpi->fn_ptr[BLOCK_16X16].sdf(src_y_ptr, b->src_stride, pre_y_buffer, pre_y_stride); if (near_sad[6] != INT_MAX) { near_sad[6] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, pre_y_buffer + 16, pre_y_stride); } if (near_sad[7] != INT_MAX) { near_sad[7] = cpi->fn_ptr[BLOCK_16X16].sdf( src_y_ptr, b->src_stride, pre_y_buffer + pre_y_stride * 16, pre_y_stride); } } if (cpi->common.last_frame_type != KEY_FRAME) { insertsortsad(near_sad, near_sadidx, 8); } else { insertsortsad(near_sad, near_sadidx, 3); } } static void rd_update_mvcount(MACROBLOCK *x, int_mv *best_ref_mv) { if (x->e_mbd.mode_info_context->mbmi.mode == SPLITMV) { int i; for (i = 0; i < x->partition_info->count; ++i) { if (x->partition_info->bmi[i].mode == NEW4X4) { const int row_val = ((x->partition_info->bmi[i].mv.as_mv.row - best_ref_mv->as_mv.row) >> 1); const int row_idx = mv_max + row_val; const int col_val = ((x->partition_info->bmi[i].mv.as_mv.col - best_ref_mv->as_mv.col) >> 1); const int col_idx = mv_max + col_val; if (row_idx >= 0 && row_idx < MVvals && col_idx >= 0 && col_idx < MVvals) { x->MVcount[0][row_idx]++; x->MVcount[1][col_idx]++; } } } } else if (x->e_mbd.mode_info_context->mbmi.mode == NEWMV) { const int row_val = ((x->e_mbd.mode_info_context->mbmi.mv.as_mv.row - best_ref_mv->as_mv.row) >> 1); const int row_idx = mv_max + row_val; const int col_val = ((x->e_mbd.mode_info_context->mbmi.mv.as_mv.col - best_ref_mv->as_mv.col) >> 1); const int col_idx = mv_max + col_val; if (row_idx >= 0 && row_idx < MVvals && col_idx >= 0 && col_idx < MVvals) { x->MVcount[0][row_idx]++; x->MVcount[1][col_idx]++; } } } static int evaluate_inter_mode_rd(int mdcounts[4], RATE_DISTORTION *rd, int *disable_skip, VP8_COMP *cpi, MACROBLOCK *x) { MB_PREDICTION_MODE this_mode = x->e_mbd.mode_info_context->mbmi.mode; BLOCK *b = &x->block[0]; MACROBLOCKD *xd = &x->e_mbd; int distortion; vp8_build_inter16x16_predictors_mby(&x->e_mbd, x->e_mbd.predictor, 16); if (cpi->active_map_enabled && x->active_ptr[0] == 0) { x->skip = 1; } else if (x->encode_breakout) { unsigned int sse; unsigned int var; unsigned int threshold = (xd->block[0].dequant[1] * xd->block[0].dequant[1] >> 4); if (threshold < x->encode_breakout) threshold = x->encode_breakout; var = vpx_variance16x16(*(b->base_src), b->src_stride, x->e_mbd.predictor, 16, &sse); if (sse < threshold) { unsigned int q2dc = xd->block[24].dequant[0]; /* If theres is no codeable 2nd order dc or a very small uniform pixel change change */ if ((sse - var < q2dc * q2dc >> 4) || (sse / 2 > var && sse - var < 64)) { /* Check u and v to make sure skip is ok */ unsigned int sse2 = VP8_UVSSE(x); if (sse2 * 2 < threshold) { x->skip = 1; rd->distortion2 = sse + sse2; rd->rate2 = 500; /* for best_yrd calculation */ rd->rate_uv = 0; rd->distortion_uv = sse2; *disable_skip = 1; return RDCOST(x->rdmult, x->rddiv, rd->rate2, rd->distortion2); } } } } /* Add in the Mv/mode cost */ rd->rate2 += vp8_cost_mv_ref(this_mode, mdcounts); /* Y cost and distortion */ macro_block_yrd(x, &rd->rate_y, &distortion); rd->rate2 += rd->rate_y; rd->distortion2 += distortion; /* UV cost and distortion */ rd_inter16x16_uv(cpi, x, &rd->rate_uv, &rd->distortion_uv, cpi->common.full_pixel); rd->rate2 += rd->rate_uv; rd->distortion2 += rd->distortion_uv; return INT_MAX; } static int calculate_final_rd_costs(int this_rd, RATE_DISTORTION *rd, int *other_cost, int disable_skip, int uv_intra_tteob, int intra_rd_penalty, VP8_COMP *cpi, MACROBLOCK *x) { MB_PREDICTION_MODE this_mode = x->e_mbd.mode_info_context->mbmi.mode; /* Where skip is allowable add in the default per mb cost for the no * skip case. where we then decide to skip we have to delete this and * replace it with the cost of signalling a skip */ if (cpi->common.mb_no_coeff_skip) { *other_cost += vp8_cost_bit(cpi->prob_skip_false, 0); rd->rate2 += *other_cost; } /* Estimate the reference frame signaling cost and add it * to the rolling cost variable. */ rd->rate2 += x->ref_frame_cost[x->e_mbd.mode_info_context->mbmi.ref_frame]; if (!disable_skip) { /* Test for the condition where skip block will be activated * because there are no non zero coefficients and make any * necessary adjustment for rate */ if (cpi->common.mb_no_coeff_skip) { int i; int tteob; int has_y2_block = (this_mode != SPLITMV && this_mode != B_PRED); tteob = 0; if (has_y2_block) tteob += x->e_mbd.eobs[24]; for (i = 0; i < 16; ++i) tteob += (x->e_mbd.eobs[i] > has_y2_block); if (x->e_mbd.mode_info_context->mbmi.ref_frame) { for (i = 16; i < 24; ++i) tteob += x->e_mbd.eobs[i]; } else { tteob += uv_intra_tteob; } if (tteob == 0) { rd->rate2 -= (rd->rate_y + rd->rate_uv); /* for best_yrd calculation */ rd->rate_uv = 0; /* Back out no skip flag costing and add in skip flag costing */ if (cpi->prob_skip_false) { int prob_skip_cost; prob_skip_cost = vp8_cost_bit(cpi->prob_skip_false, 1); prob_skip_cost -= (int)vp8_cost_bit(cpi->prob_skip_false, 0); rd->rate2 += prob_skip_cost; *other_cost += prob_skip_cost; } } } /* Calculate the final RD estimate for this mode */ this_rd = RDCOST(x->rdmult, x->rddiv, rd->rate2, rd->distortion2); if (this_rd < INT_MAX && x->e_mbd.mode_info_context->mbmi.ref_frame == INTRA_FRAME) { this_rd += intra_rd_penalty; } } return this_rd; } static void update_best_mode(BEST_MODE *best_mode, int this_rd, RATE_DISTORTION *rd, int other_cost, MACROBLOCK *x) { MB_PREDICTION_MODE this_mode = x->e_mbd.mode_info_context->mbmi.mode; other_cost += x->ref_frame_cost[x->e_mbd.mode_info_context->mbmi.ref_frame]; /* Calculate the final y RD estimate for this mode */ best_mode->yrd = RDCOST(x->rdmult, x->rddiv, (rd->rate2 - rd->rate_uv - other_cost), (rd->distortion2 - rd->distortion_uv)); best_mode->rd = this_rd; memcpy(&best_mode->mbmode, &x->e_mbd.mode_info_context->mbmi, sizeof(MB_MODE_INFO)); memcpy(&best_mode->partition, x->partition_info, sizeof(PARTITION_INFO)); if ((this_mode == B_PRED) || (this_mode == SPLITMV)) { int i; for (i = 0; i < 16; ++i) { best_mode->bmodes[i] = x->e_mbd.block[i].bmi; } } } void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, int *returnrate, int *returndistortion, int *returnintra, int mb_row, int mb_col) { BLOCK *b = &x->block[0]; BLOCKD *d = &x->e_mbd.block[0]; MACROBLOCKD *xd = &x->e_mbd; int_mv best_ref_mv_sb[2]; int_mv mode_mv_sb[2][MB_MODE_COUNT]; int_mv best_ref_mv; int_mv *mode_mv; MB_PREDICTION_MODE this_mode; int num00; int best_mode_index = 0; BEST_MODE best_mode; int i; int mode_index; int mdcounts[4]; int rate; RATE_DISTORTION rd; int uv_intra_rate, uv_intra_distortion, uv_intra_rate_tokenonly; int uv_intra_tteob = 0; int uv_intra_done = 0; MB_PREDICTION_MODE uv_intra_mode = 0; int_mv mvp; int near_sadidx[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; int saddone = 0; /* search range got from mv_pred(). It uses step_param levels. (0-7) */ int sr = 0; unsigned char *plane[4][3] = { { 0, 0 } }; int ref_frame_map[4]; int sign_bias = 0; int intra_rd_penalty = 10 * vp8_dc_quant(cpi->common.base_qindex, cpi->common.y1dc_delta_q); #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1791 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" unsigned int zero_mv_sse = UINT_MAX, best_sse = UINT_MAX, best_rd_sse = UINT_MAX; #endif # 1794 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" // _uv variables are not set consistantly before calling update_best_mode. rd.rate_uv = 0; rd.distortion_uv = 0; mode_mv = mode_mv_sb[sign_bias]; best_ref_mv.as_int = 0; best_mode.rd = INT_MAX; best_mode.yrd = INT_MAX; best_mode.intra_rd = INT_MAX; memset(mode_mv_sb, 0, sizeof(mode_mv_sb)); memset(&best_mode.mbmode, 0, sizeof(best_mode.mbmode)); memset(&best_mode.bmodes, 0, sizeof(best_mode.bmodes)); /* Setup search priorities */ get_reference_search_order(cpi, ref_frame_map); /* Check to see if there is at least 1 valid reference frame that we need * to calculate near_mvs. */ if (ref_frame_map[1] > 0) { sign_bias = vp8_find_near_mvs_bias( &x->e_mbd, x->e_mbd.mode_info_context, mode_mv_sb, best_ref_mv_sb, mdcounts, ref_frame_map[1], cpi->common.ref_frame_sign_bias); mode_mv = mode_mv_sb[sign_bias]; best_ref_mv.as_int = best_ref_mv_sb[sign_bias].as_int; } get_predictor_pointers(cpi, plane, recon_yoffset, recon_uvoffset); *returnintra = INT_MAX; /* Count of the number of MBs tested so far this frame */ x->mbs_tested_so_far++; x->skip = 0; for (mode_index = 0; mode_index < MAX_MODES; ++mode_index) { int this_rd = INT_MAX; int disable_skip = 0; int other_cost = 0; int this_ref_frame = ref_frame_map[vp8_ref_frame_order[mode_index]]; /* Test best rd so far against threshold for trying this mode. */ if (best_mode.rd <= x->rd_threshes[mode_index]) continue; if (this_ref_frame < 0) continue; /* These variables hold are rolling total cost and distortion for * this mode */ rd.rate2 = 0; rd.distortion2 = 0; this_mode = vp8_mode_order[mode_index]; x->e_mbd.mode_info_context->mbmi.mode = this_mode; x->e_mbd.mode_info_context->mbmi.ref_frame = this_ref_frame; /* Only consider ZEROMV/ALTREF_FRAME for alt ref frame, * unless ARNR filtering is enabled in which case we want * an unfiltered alternative */ if (cpi->is_src_frame_alt_ref && (cpi->oxcf.arnr_max_frames == 0)) { if (this_mode != ZEROMV || x->e_mbd.mode_info_context->mbmi.ref_frame != ALTREF_FRAME) { continue; } } /* everything but intra */ if (x->e_mbd.mode_info_context->mbmi.ref_frame) { assert(plane[this_ref_frame][0] != NULL && plane[this_ref_frame][1] != NULL && plane[this_ref_frame][2] != NULL); x->e_mbd.pre.y_buffer = plane[this_ref_frame][0]; x->e_mbd.pre.u_buffer = plane[this_ref_frame][1]; x->e_mbd.pre.v_buffer = plane[this_ref_frame][2]; if (sign_bias != cpi->common.ref_frame_sign_bias[this_ref_frame]) { sign_bias = cpi->common.ref_frame_sign_bias[this_ref_frame]; mode_mv = mode_mv_sb[sign_bias]; best_ref_mv.as_int = best_ref_mv_sb[sign_bias].as_int; } } /* Check to see if the testing frequency for this mode is at its * max If so then prevent it from being tested and increase the * threshold for its testing */ if (x->mode_test_hit_counts[mode_index] && (cpi->mode_check_freq[mode_index] > 1)) { if (x->mbs_tested_so_far <= cpi->mode_check_freq[mode_index] * x->mode_test_hit_counts[mode_index]) { /* Increase the threshold for coding this mode to make it * less likely to be chosen */ x->rd_thresh_mult[mode_index] += 4; if (x->rd_thresh_mult[mode_index] > MAX_THRESHMULT) { x->rd_thresh_mult[mode_index] = MAX_THRESHMULT; } x->rd_threshes[mode_index] = (cpi->rd_baseline_thresh[mode_index] >> 7) * x->rd_thresh_mult[mode_index]; continue; } } /* We have now reached the point where we are going to test the * current mode so increment the counter for the number of times * it has been tested */ x->mode_test_hit_counts[mode_index]++; /* Experimental code. Special case for gf and arf zeromv modes. * Increase zbin size to supress noise */ if (x->zbin_mode_boost_enabled) { if (this_ref_frame == INTRA_FRAME) { x->zbin_mode_boost = 0; } else { if (vp8_mode_order[mode_index] == ZEROMV) { if (this_ref_frame != LAST_FRAME) { x->zbin_mode_boost = GF_ZEROMV_ZBIN_BOOST; } else { x->zbin_mode_boost = LF_ZEROMV_ZBIN_BOOST; } } else if (vp8_mode_order[mode_index] == SPLITMV) { x->zbin_mode_boost = 0; } else { x->zbin_mode_boost = MV_ZBIN_BOOST; } } vp8_update_zbin_extra(cpi, x); } if (!uv_intra_done && this_ref_frame == INTRA_FRAME) { rd_pick_intra_mbuv_mode(x, &uv_intra_rate, &uv_intra_rate_tokenonly, &uv_intra_distortion); uv_intra_mode = x->e_mbd.mode_info_context->mbmi.uv_mode; /* * Total of the eobs is used later to further adjust rate2. Since uv * block's intra eobs will be overwritten when we check inter modes, * we need to save uv_intra_tteob here. */ for (i = 16; i < 24; ++i) uv_intra_tteob += x->e_mbd.eobs[i]; uv_intra_done = 1; } switch (this_mode) { case B_PRED: { int tmp_rd; /* Note the rate value returned here includes the cost of * coding the BPRED mode: x->mbmode_cost[x->e_mbd.frame_type][BPRED] */ int distortion; tmp_rd = rd_pick_intra4x4mby_modes(x, &rate, &rd.rate_y, &distortion, best_mode.yrd); rd.rate2 += rate; rd.distortion2 += distortion; if (tmp_rd < best_mode.yrd) { assert(uv_intra_done); rd.rate2 += uv_intra_rate; rd.rate_uv = uv_intra_rate_tokenonly; rd.distortion2 += uv_intra_distortion; rd.distortion_uv = uv_intra_distortion; } else { this_rd = INT_MAX; disable_skip = 1; } break; } case SPLITMV: { int tmp_rd; int this_rd_thresh; int distortion; this_rd_thresh = (vp8_ref_frame_order[mode_index] == 1) ? x->rd_threshes[THR_NEW1] : x->rd_threshes[THR_NEW3]; this_rd_thresh = (vp8_ref_frame_order[mode_index] == 2) ? x->rd_threshes[THR_NEW2] : this_rd_thresh; tmp_rd = vp8_rd_pick_best_mbsegmentation( cpi, x, &best_ref_mv, best_mode.yrd, mdcounts, &rate, &rd.rate_y, &distortion, this_rd_thresh); rd.rate2 += rate; rd.distortion2 += distortion; /* If even the 'Y' rd value of split is higher than best so far * then don't bother looking at UV */ if (tmp_rd < best_mode.yrd) { /* Now work out UV cost and add it in */ rd_inter4x4_uv(cpi, x, &rd.rate_uv, &rd.distortion_uv, cpi->common.full_pixel); rd.rate2 += rd.rate_uv; rd.distortion2 += rd.distortion_uv; } else { this_rd = INT_MAX; disable_skip = 1; } break; } case DC_PRED: case V_PRED: case H_PRED: case TM_PRED: { int distortion; x->e_mbd.mode_info_context->mbmi.ref_frame = INTRA_FRAME; vp8_build_intra_predictors_mby_s( xd, xd->dst.y_buffer - xd->dst.y_stride, xd->dst.y_buffer - 1, xd->dst.y_stride, xd->predictor, 16); macro_block_yrd(x, &rd.rate_y, &distortion); rd.rate2 += rd.rate_y; rd.distortion2 += distortion; rd.rate2 += x->mbmode_cost[x->e_mbd.frame_type] [x->e_mbd.mode_info_context->mbmi.mode]; assert(uv_intra_done); rd.rate2 += uv_intra_rate; rd.rate_uv = uv_intra_rate_tokenonly; rd.distortion2 += uv_intra_distortion; rd.distortion_uv = uv_intra_distortion; break; } case NEWMV: { int thissme; int bestsme = INT_MAX; int step_param = cpi->sf.first_step; int further_steps; int n; /* If last step (1-away) of n-step search doesn't pick the center point as the best match, we will do a final 1-away diamond refining search */ int do_refine = 1; int sadpb = x->sadperbit16; int_mv mvp_full; int col_min = ((best_ref_mv.as_mv.col + 7) >> 3) - MAX_FULL_PEL_VAL; int row_min = ((best_ref_mv.as_mv.row + 7) >> 3) - MAX_FULL_PEL_VAL; int col_max = (best_ref_mv.as_mv.col >> 3) + MAX_FULL_PEL_VAL; int row_max = (best_ref_mv.as_mv.row >> 3) + MAX_FULL_PEL_VAL; int tmp_col_min = x->mv_col_min; int tmp_col_max = x->mv_col_max; int tmp_row_min = x->mv_row_min; int tmp_row_max = x->mv_row_max; if (!saddone) { vp8_cal_sad(cpi, xd, x, recon_yoffset, &near_sadidx[0]); saddone = 1; } vp8_mv_pred(cpi, &x->e_mbd, x->e_mbd.mode_info_context, &mvp, x->e_mbd.mode_info_context->mbmi.ref_frame, cpi->common.ref_frame_sign_bias, &sr, &near_sadidx[0]); mvp_full.as_mv.col = mvp.as_mv.col >> 3; mvp_full.as_mv.row = mvp.as_mv.row >> 3; /* Get intersection of UMV window and valid MV window to * reduce # of checks in diamond search. */ if (x->mv_col_min < col_min) x->mv_col_min = col_min; if (x->mv_col_max > col_max) x->mv_col_max = col_max; if (x->mv_row_min < row_min) x->mv_row_min = row_min; if (x->mv_row_max > row_max) x->mv_row_max = row_max; /* adjust search range according to sr from mv prediction */ if (sr > step_param) step_param = sr; /* Initial step/diamond search */ { bestsme = cpi->diamond_search_sad( x, b, d, &mvp_full, &d->bmi.mv, step_param, sadpb, &num00, &cpi->fn_ptr[BLOCK_16X16], x->mvcost, &best_ref_mv); mode_mv[NEWMV].as_int = d->bmi.mv.as_int; /* Further step/diamond searches as necessary */ further_steps = (cpi->sf.max_step_search_steps - 1) - step_param; n = num00; num00 = 0; /* If there won't be more n-step search, check to see if refining * search is needed. */ if (n > further_steps) do_refine = 0; while (n < further_steps) { n++; if (num00) { num00--; } else { thissme = cpi->diamond_search_sad( x, b, d, &mvp_full, &d->bmi.mv, step_param + n, sadpb, &num00, &cpi->fn_ptr[BLOCK_16X16], x->mvcost, &best_ref_mv); /* check to see if refining search is needed. */ if (num00 > (further_steps - n)) do_refine = 0; if (thissme < bestsme) { bestsme = thissme; mode_mv[NEWMV].as_int = d->bmi.mv.as_int; } else { d->bmi.mv.as_int = mode_mv[NEWMV].as_int; } } } } /* final 1-away diamond refining search */ if (do_refine == 1) { int search_range; search_range = 8; thissme = cpi->refining_search_sad( x, b, d, &d->bmi.mv, sadpb, search_range, &cpi->fn_ptr[BLOCK_16X16], x->mvcost, &best_ref_mv); if (thissme < bestsme) { bestsme = thissme; mode_mv[NEWMV].as_int = d->bmi.mv.as_int; } else { d->bmi.mv.as_int = mode_mv[NEWMV].as_int; } } x->mv_col_min = tmp_col_min; x->mv_col_max = tmp_col_max; x->mv_row_min = tmp_row_min; x->mv_row_max = tmp_row_max; if (bestsme < INT_MAX) { int dis; /* TODO: use dis in distortion calculation later. */ unsigned int sse; cpi->find_fractional_mv_step( x, b, d, &d->bmi.mv, &best_ref_mv, x->errorperbit, &cpi->fn_ptr[BLOCK_16X16], x->mvcost, &dis, &sse); } mode_mv[NEWMV].as_int = d->bmi.mv.as_int; /* Add the new motion vector cost to our rolling cost variable */ rd.rate2 += vp8_mv_bit_cost(&mode_mv[NEWMV], &best_ref_mv, x->mvcost, 96); } // fall through case NEARESTMV: case NEARMV: /* Clip "next_nearest" so that it does not extend to far out * of image */ vp8_clamp_mv2(&mode_mv[this_mode], xd); /* Do not bother proceeding if the vector (from newmv, nearest * or near) is 0,0 as this should then be coded using the zeromv * mode. */ if (((this_mode == NEARMV) || (this_mode == NEARESTMV)) && (mode_mv[this_mode].as_int == 0)) { continue; } // fall through case ZEROMV: /* Trap vectors that reach beyond the UMV borders * Note that ALL New MV, Nearest MV Near MV and Zero MV code * drops through to this point because of the lack of break * statements in the previous two cases. */ if (((mode_mv[this_mode].as_mv.row >> 3) < x->mv_row_min) || ((mode_mv[this_mode].as_mv.row >> 3) > x->mv_row_max) || ((mode_mv[this_mode].as_mv.col >> 3) < x->mv_col_min) || ((mode_mv[this_mode].as_mv.col >> 3) > x->mv_col_max)) { continue; } vp8_set_mbmode_and_mvs(x, this_mode, &mode_mv[this_mode]); this_rd = evaluate_inter_mode_rd(mdcounts, &rd, &disable_skip, cpi, x); break; default: break; } this_rd = calculate_final_rd_costs(this_rd, &rd, &other_cost, disable_skip, uv_intra_tteob, intra_rd_penalty, cpi, x); /* Keep record of best intra distortion */ if ((x->e_mbd.mode_info_context->mbmi.ref_frame == INTRA_FRAME) && (this_rd < best_mode.intra_rd)) { best_mode.intra_rd = this_rd; *returnintra = rd.distortion2; } #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 2207 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" if (cpi->oxcf.noise_sensitivity) { unsigned int sse; vp8_get_inter_mbpred_error(x, &cpi->fn_ptr[BLOCK_16X16], &sse, mode_mv[this_mode]); if (sse < best_rd_sse) best_rd_sse = sse; /* Store for later use by denoiser. */ if (this_mode == ZEROMV && sse < zero_mv_sse) { zero_mv_sse = sse; x->best_zeromv_reference_frame = x->e_mbd.mode_info_context->mbmi.ref_frame; } /* Store the best NEWMV in x for later use in the denoiser. */ if (x->e_mbd.mode_info_context->mbmi.mode == NEWMV && sse < best_sse) { best_sse = sse; vp8_get_inter_mbpred_error(x, &cpi->fn_ptr[BLOCK_16X16], &best_sse, mode_mv[this_mode]); x->best_sse_inter_mode = NEWMV; x->best_sse_mv = x->e_mbd.mode_info_context->mbmi.mv; x->need_to_clamp_best_mvs = x->e_mbd.mode_info_context->mbmi.need_to_clamp_mvs; x->best_reference_frame = x->e_mbd.mode_info_context->mbmi.ref_frame; } } #endif # 2234 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" /* Did this mode help.. i.i is it the new best mode */ if (this_rd < best_mode.rd || x->skip) { /* Note index of best mode so far */ best_mode_index = mode_index; *returnrate = rd.rate2; *returndistortion = rd.distortion2; if (this_mode <= B_PRED) { x->e_mbd.mode_info_context->mbmi.uv_mode = uv_intra_mode; /* required for left and above block mv */ x->e_mbd.mode_info_context->mbmi.mv.as_int = 0; } update_best_mode(&best_mode, this_rd, &rd, other_cost, x); /* Testing this mode gave rise to an improvement in best error * score. Lower threshold a bit for next time */ x->rd_thresh_mult[mode_index] = (x->rd_thresh_mult[mode_index] >= (MIN_THRESHMULT + 2)) ? x->rd_thresh_mult[mode_index] - 2 : MIN_THRESHMULT; } /* If the mode did not help improve the best error case then raise * the threshold for testing that mode next time around. */ else { x->rd_thresh_mult[mode_index] += 4; if (x->rd_thresh_mult[mode_index] > MAX_THRESHMULT) { x->rd_thresh_mult[mode_index] = MAX_THRESHMULT; } } x->rd_threshes[mode_index] = (cpi->rd_baseline_thresh[mode_index] >> 7) * x->rd_thresh_mult[mode_index]; if (x->skip) break; } /* Reduce the activation RD thresholds for the best choice mode */ if ((cpi->rd_baseline_thresh[best_mode_index] > 0) && (cpi->rd_baseline_thresh[best_mode_index] < (INT_MAX >> 2))) { int best_adjustment = (x->rd_thresh_mult[best_mode_index] >> 2); x->rd_thresh_mult[best_mode_index] = (x->rd_thresh_mult[best_mode_index] >= (MIN_THRESHMULT + best_adjustment)) ? x->rd_thresh_mult[best_mode_index] - best_adjustment : MIN_THRESHMULT; x->rd_threshes[best_mode_index] = (cpi->rd_baseline_thresh[best_mode_index] >> 7) * x->rd_thresh_mult[best_mode_index]; } #if 0 /* disabled by -frewrite-includes */ #if CONFIG_TEMPORAL_DENOISING #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 2289 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" if (cpi->oxcf.noise_sensitivity) { int block_index = mb_row * cpi->common.mb_cols + mb_col; if (x->best_sse_inter_mode == DC_PRED) { /* No best MV found. */ x->best_sse_inter_mode = best_mode.mbmode.mode; x->best_sse_mv = best_mode.mbmode.mv; x->need_to_clamp_best_mvs = best_mode.mbmode.need_to_clamp_mvs; x->best_reference_frame = best_mode.mbmode.ref_frame; best_sse = best_rd_sse; } vp8_denoiser_denoise_mb(&cpi->denoiser, x, best_sse, zero_mv_sse, recon_yoffset, recon_uvoffset, &cpi->common.lf_info, mb_row, mb_col, block_index, 0); /* Reevaluate ZEROMV after denoising. */ if (best_mode.mbmode.ref_frame == INTRA_FRAME && x->best_zeromv_reference_frame != INTRA_FRAME) { int this_rd = INT_MAX; int disable_skip = 0; int other_cost = 0; int this_ref_frame = x->best_zeromv_reference_frame; rd.rate2 = x->ref_frame_cost[this_ref_frame] + vp8_cost_mv_ref(ZEROMV, mdcounts); rd.distortion2 = 0; /* set up the proper prediction buffers for the frame */ x->e_mbd.mode_info_context->mbmi.ref_frame = this_ref_frame; x->e_mbd.pre.y_buffer = plane[this_ref_frame][0]; x->e_mbd.pre.u_buffer = plane[this_ref_frame][1]; x->e_mbd.pre.v_buffer = plane[this_ref_frame][2]; x->e_mbd.mode_info_context->mbmi.mode = ZEROMV; x->e_mbd.mode_info_context->mbmi.uv_mode = DC_PRED; x->e_mbd.mode_info_context->mbmi.mv.as_int = 0; this_rd = evaluate_inter_mode_rd(mdcounts, &rd, &disable_skip, cpi, x); this_rd = calculate_final_rd_costs(this_rd, &rd, &other_cost, disable_skip, uv_intra_tteob, intra_rd_penalty, cpi, x); if (this_rd < best_mode.rd || x->skip) { *returnrate = rd.rate2; *returndistortion = rd.distortion2; update_best_mode(&best_mode, this_rd, &rd, other_cost, x); } } } #endif # 2336 "../../third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c" if (cpi->is_src_frame_alt_ref && (best_mode.mbmode.mode != ZEROMV || best_mode.mbmode.ref_frame != ALTREF_FRAME)) { x->e_mbd.mode_info_context->mbmi.mode = ZEROMV; x->e_mbd.mode_info_context->mbmi.ref_frame = ALTREF_FRAME; x->e_mbd.mode_info_context->mbmi.mv.as_int = 0; x->e_mbd.mode_info_context->mbmi.uv_mode = DC_PRED; x->e_mbd.mode_info_context->mbmi.mb_skip_coeff = (cpi->common.mb_no_coeff_skip); x->e_mbd.mode_info_context->mbmi.partitioning = 0; return; } /* macroblock modes */ memcpy(&x->e_mbd.mode_info_context->mbmi, &best_mode.mbmode, sizeof(MB_MODE_INFO)); if (best_mode.mbmode.mode == B_PRED) { for (i = 0; i < 16; ++i) { xd->mode_info_context->bmi[i].as_mode = best_mode.bmodes[i].as_mode; } } if (best_mode.mbmode.mode == SPLITMV) { for (i = 0; i < 16; ++i) { xd->mode_info_context->bmi[i].mv.as_int = best_mode.bmodes[i].mv.as_int; } memcpy(x->partition_info, &best_mode.partition, sizeof(PARTITION_INFO)); x->e_mbd.mode_info_context->mbmi.mv.as_int = x->partition_info->bmi[15].mv.as_int; } if (sign_bias != cpi->common.ref_frame_sign_bias[xd->mode_info_context->mbmi.ref_frame]) { best_ref_mv.as_int = best_ref_mv_sb[!sign_bias].as_int; } rd_update_mvcount(x, &best_ref_mv); } void vp8_rd_pick_intra_mode(MACROBLOCK *x, int *rate) { int error4x4, error16x16; int rate4x4, rate16x16 = 0, rateuv; int dist4x4, dist16x16, distuv; int rate_; int rate4x4_tokenonly = 0; int rate16x16_tokenonly = 0; int rateuv_tokenonly = 0; x->e_mbd.mode_info_context->mbmi.ref_frame = INTRA_FRAME; rd_pick_intra_mbuv_mode(x, &rateuv, &rateuv_tokenonly, &distuv); rate_ = rateuv; error16x16 = rd_pick_intra16x16mby_mode(x, &rate16x16, &rate16x16_tokenonly, &dist16x16); error4x4 = rd_pick_intra4x4mby_modes(x, &rate4x4, &rate4x4_tokenonly, &dist4x4, error16x16); if (error4x4 < error16x16) { x->e_mbd.mode_info_context->mbmi.mode = B_PRED; rate_ += rate4x4; } else { rate_ += rate16x16; } *rate = rate_; }