[roll] Roll fuchsia [ksync] Transition to Pinned Locks and Lockdep in Userspace

Transition the ksync API to support pinned locks and compile-time lock
validation using the new lockdep crate.

This commit refactors the userspace implementation:
- Introduce RawLock trait to abstract the underlying platform lock.
- Implement RawLock for fuchsia_sync::RawMutex in raw_userspace_mutex.rs.
- Rewrite KMutex to be generic over RawLock and require PinInit for safe
  dynamic initialization and stack-pinned locking.
- Rewrite the #[guarded] macro to generate LockClass registrations,
  pinned guard structures, and safe projected accessors.
- Update userspace unit tests to use pin_init! and stack_pin_init!.

Test: ksync-tests builds successfully with the new pinned architecture.
Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1630128
Original-Original-Revision: 619529feb1bd6fd8fe03307b13f8bc2218452e99
GitOrigin-RevId: 2068870f78f4f656469d61d2dbdab6c0afa59473
Change-Id: I12219f01d399523d7903add0e0f47bf20bda1f3e
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1634909
Cr-Commit-Position: refs/heads/main@{#193829}
1 file changed
tree: c86e5fd63b8eaf2a71d67f203a3ddeb6e884e669
  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.