[goldfish] Add goldfish sensor driver.

Goldfish-sensor is a multisensor device that produces
sensor reports for multiple sensor devices using goldfish
(qemud) pipe device.

Since the device needs to provide sensor reports for
multiple different kinds of sensors (currently only
accelerometer and gyrometer are supported, and more will
be added), HID bus device doesn't work and thus we create and
manage multiple fuchsia.input.report.InputDevice devices
instead.

The root device (goldfish-sensor-root) is responsible for
pipe asynchronous IO, managing and dispatching the pipe
messages to corresponding input devices.

Each input device (goldfish-sensor-...) will appear in
/dev/class/input-report and serve the InputDevice FIDL
protocol.

TEST=added unit tests to goldfish-sensor-test
  - input_device_test
  - root_device_test
  - parser_test

Fixed: 78205
Change-Id: I0726b47955134fa36da584097093f703f1735a1d
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/556165
Commit-Queue: Yilong Li <liyl@google.com>
Reviewed-by: Suraj Malhotra <surajmalhotra@google.com>
Reviewed-by: David Reveman <reveman@google.com>
Reviewed-by: David Gilhooley <dgilhooley@google.com>
18 files changed
tree: e416ad4313ac7c4efaa69559f40defdf3bcdfda2
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

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.