Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/bionic/bionic/libc/kernel/tools/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 6 kB image not shown  

Quelle  defaults.py

  Sprache: Python
 

# All the defaults used to generate the cleaned-up uapi headers for bionic.

# the list of include directories that belong to the kernel
# tree. used when looking for sources...
kernel_dirs = [ "linux""asm""asm-generic""mtd" ]

# a special value that is used to indicate that a given macro is known to be
# undefined during optimization
kCppUndefinedMacro = "<<<undefined>>>"

# this is the set of known macros we want to totally optimize out from the
# final headers
kernel_known_macros = {
    "__KERNEL__": kCppUndefinedMacro,
    "__KERNEL_STRICT_NAMES":"1",
    "__CHECKER__": kCppUndefinedMacro,
    "__CHECK_ENDIAN__": kCppUndefinedMacro,
    "CONFIG_64BIT""__LP64__",
    "CONFIG_X86_32""__i386__",
    "__EXPORTED_HEADERS__""1",
    "__HAVE_BUILTIN_BSWAP16__""1",
    "__HAVE_BUILTIN_BSWAP32__""1",
    "__HAVE_BUILTIN_BSWAP64__""1",
    # Use this to remove the struct __kernel_old_timeval definition.
    # Otherwise, there will be two struct timeval definitions when
    # __kernel_old_timeval is renamed to timeval.
    "__kernel_old_timeval""1",
    # Drop the custom byte swap functions and just use the clang builtins.
    https://github.com/android/ndk/issues/2107
    "__arch_swab16": kCppUndefinedMacro,
    "__arch_swab16p": kCppUndefinedMacro,
    "__arch_swab16s": kCppUndefinedMacro,
    "__arch_swab32": kCppUndefinedMacro,
    "__arch_swab32p": kCppUndefinedMacro,
    "__arch_swab32s": kCppUndefinedMacro,
    "__arch_swab64": kCppUndefinedMacro,
    "__arch_swab64p": kCppUndefinedMacro,
    "__arch_swab64s": kCppUndefinedMacro,
    "__arch_swahb32": kCppUndefinedMacro,
    "__arch_swahb32p": kCppUndefinedMacro,
    "__arch_swahb32s": kCppUndefinedMacro,
    "__arch_swahw32": kCppUndefinedMacro,
    "__arch_swahw32p": kCppUndefinedMacro,
    "__arch_swahw32s": kCppUndefinedMacro,
    }

# This is the set of known kernel data structures we want to remove from
# the final headers. If the map value is non-empty, that means that in
# addition to removing the structure, add a #include to the file.
kernel_structs_to_remove = {
    # Remove these structures since they are still the same as
    # timeval, itimerval. Also, add an include of linux/time.h
    # since __kernel_old_timeval is being changed to timeval, and
    # is only present in linux/time.h.
    "__kernel_old_timeval""linux/time.h",
    "__kernel_old_itimerval"None,
    # Replace all of the below structures with #include <bits/STRUCT.h>
    "__kernel_sockaddr_storage""bits/sockaddr_storage.h",
    "epoll_event""bits/epoll_event.h",
    "flock""bits/flock.h",
    "flock64""bits/flock64.h",
    "in_addr""bits/in_addr.h",
    "ip_mreq_source""bits/ip_mreq_source.h",
    "ip_msfilter""bits/ip_msfilter.h",
    "tcphdr""bits/tcphdr.h",
    "timespec""bits/timespec.h",
    }

# define to true if you want to remove all defined(CONFIG_FOO) tests
# from the clean headers. testing shows that this is not strictly necessary
# but just generates cleaner results
kernel_remove_config_macros = True

# Maps an architecture to a set of default macros that would be provided by
# the toolchain's preprocessor. Currently only used to remove confusing
# big-endian junk from the 32-bit arm headers.
kernel_default_arch_macros = {
    "arm": {"__ARMEB__": kCppUndefinedMacro, "__ARM_EABI__""1"},
    }

# Replace tokens in the output according to this mapping.
kernel_token_replacements = {
    # The kernel usage of __unused for unused struct fields conflicts with the macro defined in <sys/cdefs.h>.
    "__unused""__linux_unused",
    # The kernel usage of C++ keywords causes problems for C++ code so rename.
    "class""__linux_class",
    "private""__linux_private",
    "virtual""__linux_virtual",
    # The non-64 stuff is legacy; msqid64_ds/ipc64_perm is what userspace wants.
    "msqid_ds""__kernel_legacy_msqid_ds",
    "semid_ds""__kernel_legacy_semid_ds",
    "shmid_ds""__kernel_legacy_shmid_ds",
    "ipc_perm""__kernel_legacy_ipc_perm",
    # The kernel semun isn't usable (https://github.com/android-ndk/ndk/issues/400).
    "semun""__kernel_legacy_semun",
    # The kernel's _NSIG/NSIG are one less than the userspace value, so we need to move them aside.
    "_NSIG""_KERNEL__NSIG",
    "NSIG""_KERNEL_NSIG",
    # The kernel's SIGRTMIN/SIGRTMAX are absolute limits; userspace steals a few.
    "SIGRTMIN""__SIGRTMIN",
    "SIGRTMAX""__SIGRTMAX",
    # We want to support both BSD and Linux member names in struct udphdr.
    "udphdr""__kernel_udphdr",
    # This causes problems when trying to export the headers for the ndk.
    "__attribute_const__""__attribute__((__const__))",
    # The kernel started using struct __kernel_old_timeval in some places,
    # which is the exact same as struct timeval. Replace that name with
    # timeval so that kernel structures all use the same named structure.
    # If struct __kernel_old_timeval and struct timeval become different,
    # then a different solution needs to be implemented.
    "__kernel_old_timeval""timeval",
    # Do the same for __kernel_old_itimerval as for timeval.
    "__kernel_old_itimerval""itimerval",
    # Do the same for __kernel_sockaddr_storage.
    "__kernel_sockaddr_storage""sockaddr_storage",
    # Replace __packed with __attribute__((__packed__)) to avoid depending
    # on sys/cdefs.h
    "__packed""__attribute__((__packed__))",
    # Remove unused macros (http://b/262917450).
    "__force""",
    "__user""",
    # Rename the kernel's sigaction so we can expose our POSIX one publicly,
    # but translate to the kernel's one internally.
    "sigaction""__kernel_sigaction",
    }


# Static inline functions that we want to keep.
kernel_known_generic_statics = set(
        [
          "ipt_get_target",  # uapi/linux/netfilter_ipv4/ip_tables.h
          "ip6t_get_target"# uapi/linux/netfilter_ipv6/ip6_tables.h
          # Byte swapping inlines from uapi/linux/swab.h
          # The below functions are the ones we are guaranting we export.
          "__swab16",
          "__swab32",
          "__swab64",
          "__swab16p",
          "__swab32p",
          "__swab64p",
          "__swab16s",
          "__swab32s",
          "__swab64s",
          "__swahw32",
          "__swahb32",
          "__swahw32p",
          "__swahb32p",
          "__swahw32s",
          "__swahb32s",
          # These are required to support the above functions.
          "__fswahw32",
          "__fswahb32",
          # This is used by various macros in <linux/ioprio.h>.
          "ioprio_value",

          # Contact opensource-licensing@ before adding to this set.
        ]
    )

Messung V0.5 in Prozent
C=90 H=92 G=90

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet am  2026-06-28) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.