/bionic/tests/ |
D | libgen_basename_test.cpp | 27 static const char* gnu_basename(const char* in) { in gnu_basename() argument 28 return basename(in); in gnu_basename() 37 static char* posix_basename(char* in) { in posix_basename() argument 38 return basename(in); in posix_basename() 44 static void __TestGnuBasename(const char* in, const char* expected_out, int line) { in __TestGnuBasename() argument 46 const char* out = gnu_basename(in); in __TestGnuBasename() 47 ASSERT_STREQ(expected_out, out) << "(" << line << "): " << in << std::endl; in __TestGnuBasename() 48 ASSERT_EQ(0, errno) << "(" << line << "): " << in << std::endl; in __TestGnuBasename() 51 static void __TestPosixBasename(const char* in, const char* expected_out, int line) { in __TestPosixBasename() argument 52 char* writable_in = (in != nullptr) ? strdup(in) : nullptr; in __TestPosixBasename() [all …]
|
D | libgen_test.cpp | 22 static void TestDirname(const char* in, const char* expected_out) { in TestDirname() argument 23 char* writable_in = (in != nullptr) ? strdup(in) : nullptr; in TestDirname() 26 ASSERT_STREQ(expected_out, out) << in; in TestDirname() 27 ASSERT_EQ(0, errno) << in; in TestDirname() 43 static void TestBasename(const char* in, const char* expected_out, int expected_rc, in TestBasename() argument 46 int rc = basename_r(in, buf, buf_size); in TestBasename() 47 ASSERT_EQ(expected_rc, rc) << in; in TestBasename() 49 ASSERT_STREQ(expected_out, buf) << in; in TestBasename() 51 ASSERT_EQ(expected_errno, errno) << in; in TestBasename() 54 static void TestDirname(const char* in, const char* expected_out, int expected_rc, in TestDirname() argument [all …]
|
D | iconv_test.cpp | 60 char* in = const_cast<char*>(utf8); in TEST() local 61 size_t in_bytes = strlen(in); in TEST() 66 EXPECT_EQ(0U, iconv(c, &in, &in_bytes, &out, &out_bytes)); in TEST() 86 char* in = const_cast<char*>(utf8); in TEST() local 87 size_t in_bytes = strlen(in); in TEST() 95 EXPECT_EQ(2U, iconv(c, &in, &in_bytes, &out, &out_bytes)); in TEST() 115 char* in = const_cast<char*>(utf8); in TEST() local 116 size_t in_bytes = strlen(in); in TEST() 124 EXPECT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes)); in TEST() 143 char* in = const_cast<char*>(utf8); in TEST() local [all …]
|
/bionic/docs/ |
D | status.md | 7 for changes related to native code loading in various Android releases. 13 You can see the current status with respect to POSIX in the form of tests: 46 Run `./libc/tools/check-symbols-glibc.py` in bionic/ for the current 53 New libc functions in R (API level 30): 59 New libc behavior in R (API level 30): 63 New libc functions in Q (API level 29): 65 * `reallocarray` (BSD/GNU extension in `<malloc.h>` and `<stdlib.h>`) 66 * `res_randomid` (in `<resolv.h>`) 68 * `getloadavg` (BSD/GNU extension in <stdlib.h>) 70 New libc behavior in Q (API level 29): [all …]
|
D | native_allocator.md | 11 to run in on Android. The first is the normal allocator, the second is 18 The `BoardConfig.mk` file is usually found in the directory 19 `device/<DEVICE_NAME>/` or in a sub directory. 44 This function enumerates all of the allocations currently live in the 48 tests for this funcion in `bionic/tests/malloc_itearte_test.cpp`. 57 kernel on free calls. This is important in Android to avoid consuming extra 70 force a purge in this case. 130 allocator on Android. One is allocation speed in various different scenarios, 133 The last is virtual address space consumed in 32 bit applications. There is 134 a limited amount of address space available in 32 bit apps, and there have [all …]
|
D | 32-bit-abi.md | 18 function `lseek64` were available right from the beginning in API 3. Secondly, 25 `lseek` in the source becoming `lseek64` at runtime) was added late. Even when 35 [linker map](libc/libc.map.txt) for full details. Note also that in NDK r16 and 36 later, if you're using Clang we'll inline an `mmap64` implementation in the 45 grep thoroughly in both your source and your build system: many people 63 in the 64-bit ABI even though they're identical to the non-`64` names. 69 there is no support for real-time signals in 32-bit code. Android P (API 81 in the 64-bit ABI even though they're identical to the non-`64` names. 86 On 32-bit Android, `time_t` is 32-bit, which will overflow in 2038. 109 mutexes for tids that don't fit in 16 bits. This typically manifests as [all …]
|
D | elf-tls.md | 15 Thread-local variables are declared in C and C++ with a specifier, e.g.: 31 architecture-specific thread-pointer ([`__get_tls()`] in Bionic): 47 expected to point immediately at the DTV pointer, whereas in variant 2, the DTV pointer's offset 66 A TLS variable may be in a different module than the reference. 71 "traditional" non-TLSDESC design described in Drepper's TLS document, the toolchain compiler emits a 74 For example, if we have this C code in a shared object: 92 static TlsIndex tls_var_idx = { // allocated in the .got 104 `__tls_get_addr` looks up `TlsIndex::module`'s entry in the DTV and adds `TlsIndex::offset` to the 116 musl, on the other, preallocates TLS memory in `pthread_create` and in `dlopen`, and each can report 140 static TlsIndex tls_module_idx = { // allocated in the .got [all …]
|
D | fdsan.md | 38 …. suppose thread two was saving user data to disk when a third thread came in and opened a socket … 45 …in [`<android/fdsan.h>`](https://android.googlesource.com/platform/bionic/+/master/libc/include/an… 61 …or less strict at runtime via the `android_fdsan_set_error_level` function in [`<android/fdsan.h>`… 63 …ile descriptor error is proportional to the percentage of file descriptors in your process that ar… 132 which results in the following output: 136 … else is helpfully closing it for us. Let's use `android::base::unique_fd` in `victim` to guard th… 184 ...in the obviously correct bystander? What's going on here? 186 …in fdsan, and will commonly be seen when tracking down double-closes in processes that have sparse… 227 …que_fd` and `ParcelFileDescriptor`, to improve the odds that double closes in other code get detec… 238 * Redistribution and use in source and binary forms, with or without [all …]
|
/bionic/libc/kernel/uapi/linux/ |
D | vboxguest.h | 44 } in; member 62 } in; member 74 } in; member 99 } in; member 109 } in; member 123 } in; member 133 } in; member 157 } in; member
|
/bionic/libc/ |
D | NOTICE | 4 Redistribution and use in source and binary forms, with or without 9 2. Redistributions in binary form must reproduce the above copyright 10 notice, this list of conditions and the following disclaimer in the 31 Redistribution and use in source and binary forms, with or without 35 * Redistributions in binary form must reproduce the above copyright 36 notice, this list of conditions and the following disclaimer in the 102 algorithms are contained in the original files. 231 Redistribution and use in source and binary forms, with or without 236 2. Redistributions in binary form must reproduce the above copyright 237 notice, this list of conditions and the following disclaimer in the [all …]
|
D | SECCOMP_BLOCKLIST_COMMON.TXT | 1 # This file is used to populate seccomp's allowlist policy in combination with SYSCALLS.TXT. 5 # Any entry in the blocklist must be in the syscalls file and not be in the allowlist file
|
D | SECCOMP_PRIORITY.TXT | 1 # This file is used to populate seccomp's allowlist policy in combination with SYSCALLS.TXT. 6 # The syscalls below are prioritized above other syscalls when checking seccomp policy, in 7 # the order of appearance in this file.
|
D | SECCOMP_ALLOWLIST_COMMON.TXT | 1 # This file is used to populate seccomp's allowlist policy in combination with SYSCALLS.TXT. 36 # Useful new syscalls which we don't yet use in bionic. 39 # Since Linux 2.5, not in glibc. 45 # Since Linux 3.14, not in glibc. 48 # Since Linux 3.19, not in glibc (and not really needed to implement fexecve). 50 # Since Linux 4.3, not in glibc. Probed for and conditionally used by ART. 57 # Since Linux 5.1, not in glibc. 75 # Since Linux 5.3, not in glibc.
|
D | SECCOMP_BLOCKLIST_APP.TXT | 1 # This file is used to populate seccomp's allowlist policy in combination with SYSCALLS.TXT. 5 # Any entry in the blocklist must be in the syscalls file and not be in the allowlist file 9 # Note: Some privileged syscalls are still needed in app process after fork before uid change,
|
/bionic/benchmarks/ |
D | README.md | 19 By default, `bionic-benchmarks` runs all of the benchmarks in alphabetical order. Pass 20 `--benchmark_filter=getpid` to run just the benchmarks with "getpid" in their name. 29 Suites are stored in the `suites/` directory and can be chosen with the command line flag 33 searches for the XML file in the `suites/` directory. If it doesn't exist in that directory, then 57 To make small changes in runs, you can also schedule benchmarks by passing in their name and a 61 Note that benchmarks will run normally if extra arguments are passed in, and it will fail 62 with a segfault if too few are passed in. 66 For the sake of brevity, multiple runs can be scheduled in one XML element by putting one of the 67 following in the args field: 75 Definitions for these can be found in bionic_benchmarks.cpp, and example usages can be found in [all …]
|
/bionic/ |
D | README.md | 23 `cos(3)` in a separate library to save space in the days before shared 46 jump to `fopen(3)`, say, it lands in the right place). 58 ## What's in libc/? 68 # because it's architecture-specific. There will be a .mk file in here that 69 # drags in all the architecture-specific files. 87 # in external/kernel-headers/. These files must not be edited directly. The 109 # in our world. The *-compat.h files are automatically included 118 # current upstream source in one of the upstream directories or by 149 The answer is probably "yes" if the system call has a wrapper in at 153 users in different projects, and there isn't a more specific library [all …]
|
D | android-changes-for-ndk-developers.md | 4 loading in various Android releases. 28 increase your target API level will appear in logcat when that library 38 Until it was [fixed](https://issuetracker.google.com/36950617) in 43 [fixed](https://issuetracker.google.com/36935779) in JB-MR2, the 45 to topologically sort your libraries and load them in reverse order. 65 in that order. For API 23 and later, for any given library, the dynamic 84 ## RTLD_LOCAL (Available in API level >= 23) 87 correctly in API 23 and later. Note that RTLD_LOCAL is the default, 94 ## GNU hashes (Availible in API level >= 23) 97 symbol lookup and is now supported by the dynamic linker in API 23 and [all …]
|
/bionic/libdl/ |
D | NOTICE | 36 "Work" shall mean the work of authorship, whether in Source or 38 copyright notice that is included in or attached to the work 39 (an example is provided in the Appendix below). 41 "Derivative Works" shall mean any work, whether in Source or Object 52 submitted to Licensor for inclusion in the Work by the copyright owner 61 designated in writing by the copyright owner as "Not a Contribution." 72 Work and such Derivative Works in Source or Object form. 77 (except as stated in this section) patent license to make, have made, 84 cross-claim or counterclaim in a lawsuit) alleging that the Work 91 Work or Derivative Works thereof in any medium, with or without [all …]
|
/bionic/libc/kernel/android/ |
D | README.md | 2 exist in android kernels, but have not been upstreamed into the regular 12 scsi headers and haven't substantially updated them in 15 years. The 13 musl libc project has a similar set of definitions in its scsi headers. 15 These files are actually maintained in `external/kernel-headers/modified/scsi/`.
|
/bionic/libc/bionic/ |
D | signal.cpp | 81 SigSetConverter in, out; in sigblock() local 82 sigemptyset(&in.sigset); in sigblock() 83 in.bsd = mask; in sigblock() 84 if (sigprocmask(SIG_BLOCK, &in.sigset, &out.sigset) == -1) return -1; in sigblock() 250 SigSetConverter in, out; in sigsetmask() local 251 sigemptyset(&in.sigset); in sigsetmask() 252 in.bsd = mask; in sigsetmask() 253 if (sigprocmask(SIG_SETMASK, &in.sigset, &out.sigset) == -1) return -1; in sigsetmask()
|
/bionic/libc/kernel/uapi/drm/ |
D | amdgpu_drm.h | 85 struct drm_amdgpu_gem_create_in in; member 107 struct drm_amdgpu_bo_list_in in; member 147 struct drm_amdgpu_ctx_in in; member 160 struct drm_amdgpu_vm_in in; member 172 struct drm_amdgpu_sched_in in; member 234 struct drm_amdgpu_gem_mmap_in in; member 247 struct drm_amdgpu_gem_wait_idle_in in; member 262 struct drm_amdgpu_wait_cs_in in; member 283 struct drm_amdgpu_wait_fences_in in; member 354 struct drm_amdgpu_cs_in in; member [all …]
|
/bionic/libc/malloc_debug/ |
D | README_api.md | 4 in a process. The libc library in Android exports two calls that can be 43 incorrectly set to the number of frames in the backtrace. 53 The total number of these structures returned in *info* is 56 Note, the size value in each allocation data structure will have bit 31 set 57 if this allocation was created in a process forked from the Zygote process.
|
D | README.md | 30 Any errors detected by the library are reported in the log. 32 NOTE: There is a small behavioral change beginning in P for realloc. 34 backtrace related to the allocation. Starting in P, every single realloc 42 individually, or in a group of other options. Every single option can be 53 in the log indicating what bytes changed. 58 If SIZE\_BYTES is present, it indicates the number of bytes in the guard. 79 in the log indicating what bytes changed. 81 If SIZE\_BYTES is present, it indicates the number of bytes in the guard. 96 If SIZE\_BYTES is present, it indicates the number of bytes in both guards. 109 capture in a backtrace. The default is 16 frames, the maximumum value [all …]
|
/bionic/libc/kernel/ |
D | README.md | 7 in the `tools/` directory. The tools process the original 8 unmodified kernel headers in order to get rid of many annoying 9 declarations and constructs that usually result in compilation failure. 15 They can be included from C++, or when compiling code in strict ANSI mode. 18 Description of the directories involved in generating the parsed kernel headers: 21 Contains the uapi kernel headers found in the android kernel. Note this 27 in `external/kernel-headers/original/uapi/`.
|
/bionic/linker/ |
D | Android.bp | 9 // embedded as the entry point, and the linker is embedded as ELF sections in 11 // extract_linker), and defines the extern symbols used in this file. 51 // We need to access Bionic private headers in the linker. 110 // We need to access Bionic private headers in the linker. 259 // avoided in the case of building loader. 268 // Leave the symbols in the shared library so that stack unwinders can produce 275 // looking up symbols in the linker by mistake. 294 // reference to __gnu_Unwind_Find_exidx, which isn't sufficient to pull in the strong definition 296 // non-relative dynamic relocation in the linker binary, which complicates linker startup. 369 // libgcc.a are made static to ld-android.so. This in turn ensures that libraries that [all …]
|