tree: eca9abe19b44f35b1784b484bfbd6052cf25f11e [path history] [tgz]
  1. ashmem/
  2. binderfs/
  3. boot_notifier/
  4. cgroupfs/
  5. device_mapper/
  6. ext4/
  7. fastrpc/
  8. framebuffer/
  9. functionfs/
  10. fuse/
  11. gpu/
  12. gralloc/
  13. hvdcp_opti/
  14. input/
  15. kgsl/
  16. layeredfs/
  17. loop/
  18. magma/
  19. nanohub/
  20. overlayfs/
  21. perfetto_consumer/
  22. perfetto_producer/
  23. procfs/
  24. pstore/
  25. selinuxfs/
  26. thermal/
  27. touch_power_policy/
  28. tracefs/
  29. tun/
  30. zram/
  31. BUILD.gn
  32. lib.rs
  33. README.md
src/starnix/modules/README.md

Starnix Modules

Starnix modules are crates that are statically linked into the Starnix kernel and provide self-contained functionality.

Dependencies

Starnix modules can depend on starnix_core but starnix_core cannot depend on any modules. A Starnix module cannot depend on another Starnix module. If you need to share code between two modules, please either put that code in //src/starnix/lib, if the code does not need to depend on starnix_core, or in //src/starnix/kernel, if the code does need to depend on starnix_core.

Use cases

Two common use cases for Starnix modules are device drivers and file systems.

Configuration

To ensure code quality and consistency across all Starnix modules, each module's BUILD.gn file must include the common clippy lint configuration.

This is done by adding the following to the configs list of your rustc_library target:

  configs += [ "//src/starnix/config:starnix_clippy_lints" ]

This configuration enforces a standard set of lints, helping to catch common errors and maintain a uniform coding style throughout the Starnix module ecosystem.