Add `sigset64_t` and accompanying functions.
This doesn't address `struct sigaction` and `sigaction`. That will
come later.
Bug: http://b/72493232
Test: ran tests
Change-Id: I4134346757ce3a4dac6feae413361cec16223386
diff --git a/docs/32-bit-abi.md b/docs/32-bit-abi.md
index 9ae1973..21f9b71 100644
--- a/docs/32-bit-abi.md
+++ b/docs/32-bit-abi.md
@@ -64,7 +64,9 @@
On 32-bit Android, `sigset_t` is too small for ARM and x86 (but correct for
MIPS). This means that there is no support for real-time signals in 32-bit
-code.
+code. Android P (API level 28) adds `sigset64_t` and a corresponding function
+for every function that takes a `sigset_t` (so `sigprocmask64` takes a
+`sigset64_t` where `sigprocmask` takes a `sigset_t`).
In the 64-bit ABI, `sigset_t` is the correct size for every architecture.
@@ -77,10 +79,11 @@
In the 64-bit ABI, `time_t` is 64-bit.
+
## `pthread_mutex_t` is too small for large pids
This doesn't generally affect Android devices, because on devices
-`/proc/sys/kernel/pid_max` is usually too small to hit the 16-bit limit,
+`/proc/sys/kernel/pid_max` is usually too small to hit our 16-bit limit,
but 32-bit bionic's `pthread_mutex` is a total of 32 bits, leaving just
16 bits for the owner thread id. This means bionic isn't able to support
mutexes for tids that don't fit in 16 bits. This typically manifests as