Introduce new module mount implementation

Rewrite the whole module mounting logic from scratch.
Even the algorithm is different compared to the old one.

This new design focuses on a few key points:
- Modular: Custom nodes can be injected into the mount tree.
  It's the main reason for starting the rewrite (needed for Android 11)
- Efficient: Compared to the existing implementation, this is the most
  efficient (both in terms of computation and memory usage) design I
  currently can come up with.
- Accurate: The old mounting logic relies on handling specifically every
  edge case I can think of. During this rewrite I actually found some
  cases that the old design does not handle properly. This new design is
  architected in a way (node types and its rankings) that it should
  handle edge cases all by itself when constructing mount trees.
This commit is contained in:
topjohnwu
2020-04-18 02:00:48 -07:00
parent ab853e1fcf
commit a73e7e9f99
4 changed files with 631 additions and 429 deletions

View File

@ -41,6 +41,7 @@ void unlock_blocks();
void post_fs_data(int client);
void late_start(int client);
void boot_complete(int client);
void handle_modules();
void remove_modules();
/*************