[roll] Roll fuchsia [wlan] Replace wlan_common SendPtr with std AtomicPtr This change replaces all uses of the bespoke `SendPtr` type with the standard library `AtomicPtr` type. The `AtomicPtr` type is a thin wrapper around a raw pointer that implements `Send` and `Sync` and provides atomic access to the pointer itself. No uses of `SendPtr` require replacing the wrapped pointer once wrapped, and all uses rely on an owned value or exclusive reference. Thus, wlan-mlme only uses the `new`, `into_inner`, and `get_mut` methods in `AtomicPtr`. All wrapped pointers are thread-safe `*mut c_void` pointers, so Rust code cannot meaningfully write/read the pointee and wlansoftmac is carefully designed to use the pointers from different threads. I originally created the `SendPtr` type to step around using `AtomicPtr` since, at the time, it was only necessary to make the wrapped pointers implement `Send`, and the atomic load and store of the pointer itself was not required. However, the migration of `DeviceOps` to use async functions requires those pointers to implement `Sync` in some cases as well. Since `AtomicPtr` implements both `Sync` and `Send` and still requires an unsafe dereference to access the pointee, the tradeoff of maintaining the separate `SendPtr` type is no longer worthwhile. Test: Successful iface creation, scan, connect, disconnect with iwlwifi on NUC Multiply: fuchsia-pkg://fuchsia.com/wlan-mlme-tests Multiply: fuchsia-pkg://fuchsia.com/wlansoftmac-rust-tests Multiply: fuchsia-pkg://fuchsia.com/wlan-hw-sim-contemporary-privacy-tests Multiply: fuchsia-pkg://fuchsia.com/wlan-hw-sim-legacy-privacy-tests Multiply: fuchsia-pkg://fuchsia.com/wlan-hw-sim-rate-selection-tests Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1034093 Original-Revision: 928dadd49b3c91d4331063aa8f54a93759ef6084 GitOrigin-RevId: 5708da60ce1ebb97642d2c1cee899b9d149588e9 Change-Id: Ifcd54c1053fcbf9251499340f11979e982eb983e
This repository contains Fuchsia's Global Integration manifest files.
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 via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.