[netstack3] Remove lock levels only used for unlocked access

There are currently a number of lock levels that are declared only for
usage in implementations of UnlockedAccess. There is some value in this
pattern, namely that it draws attention to the state being accessed
without using the lock ordering system; however, it also leads to a lot
of extra boilerplate code and the tradeoff is less worth it now that
core has been split into several crates. As a consequence of the crate
split, we now keep all state that is held by locks crate-private in
non-integration core crates; this means that providing a shared
reference to StackState does not allow for sidestepping the global lock
ordering. The same is true of state held in DeviceIds.

As a result of the improved hygiene and clarity from the crate split, we
can remove all of the dedicated lock levels meant only for unlocked
access in lieu of a single lock level, UnlockedState, that is used in a
handful of places to provide top-level readonly access to StackState
itself or device-specific state.

Change-Id: I429a15bd703ed10622a42706c903f7bc6bc594ba
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1204706
Commit-Queue: Peter Johnston <peterjohnston@google.com>
Reviewed-by: Bruno Dal Bo <brunodalbo@google.com>
Fuchsia-Auto-Submit: Peter Johnston <peterjohnston@google.com>
Reviewed-by: Jeff Martin <martinjeffrey@google.com>
11 files changed
tree: e9affeb814b7c59cc0c4cc5a3a6bdae080360832
  1. .helix/
  2. boards/
  3. build/
  4. bundles/
  5. docs/
  6. examples/
  7. infra/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .ignore
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyproject.toml
  34. pyrightconfig.json
  35. README.md
  36. rustfmt.toml
  37. shac.star
  38. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.