tree: dfa22938a79012bc9300eacd12889d1d382b2721 [path history] [tgz]
  1. tests/
  2. bootfs.cc
  3. bootfs.h
  4. BUILD.gn
  5. loader-service.cc
  6. loader-service.h
  7. mapper.cc
  8. option.cc
  9. option.h
  10. OWNERS
  11. README.md
  12. start.cc
  13. userboot-elf.cc
  14. userboot-elf.h
  15. util.cc
  16. util.h
  17. vdso-syms.ld.h
  18. zbi.cc
  19. zbi.h
  20. zx_panic.cc
zircon/kernel/lib/userabi/userboot/README.md

Userboot

Svc Stub

Processes launched by userboot will be provided with a handle of PA_NS_DIR type and name ‘/svc’. This allows services to pipeline requests to services that might eventually be available. For now, this is only used for pipelining requests to fuchsia.debugdata.Publisher. The server side of the handle is stashed in the Svc Stash.

Svc Stash

The Svc Stash corresponds to the fuchsia.boot.SvcStash protocol. Essentially the server end of the handle is propagated to booted program through the handle table as PA_USER0 with argument 0.

Userboot will issue one fuchsia.boot.SvcStash/Push for each launch program, including the booted program itself. For example, if userboot would launch a test and then the booting program, it would issue a push for the test and the booting program. Each with their respective handles.