[roll] Roll fuchsia [roll] Roll llvm-project/libc [libc] Assorted improvements to [gs]etitimer (#206974)

This started out as a patch adding a syscall wrapper for the two
functions. It still does that, but along the way I (or rather AI)
discovered an edge case in the truncation of microsecond values, where
we could turn bogus values into seemingly valid ones by throwing away
the high-order bits.

Additionally, when writing a test case, I noticed that the (64-bit)
kernel returns EINVAL for these out-or-range values. Our check returns
EOVERFLOW in this case, so I also change our error code in order to
provide an uniform behavior for the test case.

Neither of these (the check and the EINVAL error code) are present in
glibc (which lets truncated usec values through and returns EOVERFLOW on
second truncation), but I think it's better to be consistent with the
64-bit behavior. The EOVERFLOW error also has no foundation in POSIX
whereas EINVAL is mentioned as an error for invalid microseconds.

While in there, I also define ITIMER_REAL, ITIMER_VIRTUAL, and
ITIMER_PROF in linux/sys-time-macros.h and update code to use them
instead of raw numbers.

Assisted by Gemini.

GitOrigin-RevId: 9a4ad0acce7abf452746a5eab7c85730031152a3
Original-Original-Revision: df5b4530e999021728cfd8ab708041ff80960d9c

Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1700734
Original-Original-Revision: be21c3f68203eb9ee5d710be50bab2854eadc087
GitOrigin-RevId: 80dea8c1c02052aedcdec3d0abf4a4bc4754d51b
Change-Id: I540c5896f036c747334d3933eaf855c303dcbc08
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1700894
Cr-Commit-Position: refs/heads/main@{#196632}
1 file changed
tree: d6015f426ac2d246cec74fceaae0a87ee4b90d9d
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.