Osmin RTOS organization
Here is a fully-expanded call graph for the scopes in Osmin’s source code. It’s a little repetitive, because many scopes are called from more than one place, but the alternative to this presentation would involve a lot of crossed lines. Trivial scopes such as space::, newline::, and internal.error:: are not shown.
main
└───wipe.at.startup
├───boot
│ ├───dump.schedule
│ │ └───dict.iterate
│ ├───enschedule
│ │ ├───dict.add.dupe
│ │ ├───dict.get
│ │ ├───get.from.user.pool
│ │ ├───release.user.program
│ │ │ └───unhold.or.release.user.program
│ │ │ ├───dict.get
│ │ │ ├───dict.remove.unchecked
│ │ │ └───unload.text.segment
│ │ ├───retain.user.program
│ │ │ └───hold.or.retain.user.program
│ │ │ ├───dict.add.dupe
│ │ │ ├───dict.get
│ │ │ ├───dict.remove.unchecked
│ │ │ └───load.text.segment
│ │ │ └───unload.text.segment
│ │ └───return.to.user.pool
│ ├───run.system
│ │ ├───deschedule
│ │ │ ├───dict.get
│ │ │ ├───disable.timer
│ │ │ ├───enable.timer
│ │ │ ├───release.user.program
│ │ │ │ └───unhold.or.release.user.program
│ │ │ │ ├───dict.get
│ │ │ │ ├───dict.remove.unchecked
│ │ │ │ └───unload.text.segment
│ │ │ ├───return.to.user.pool
│ │ │ ├───wipe.user.page.table
│ │ │ ├───wipe.user.registers
│ │ │ └───wipe.user.stack
│ │ ├───dict.iterate
│ │ ├───dict.remove.multiple
│ │ │ └───dict.remove.unchecked
│ │ ├───dump.schedule
│ │ │ └───dict.iterate
│ │ ├───enable.timer
│ │ ├───resume.user.program
│ │ └───wipe.at.shutdown
│ │ ├───disable.timer
│ │ ├───wipe.code
│ │ ├───wipe.data.ram
│ │ │ └───wipe.phys.page
│ │ ├───wipe.user.page.table
│ │ ├───wipe.user.registers
│ │ └───wipe.user.stack
│ ├───setup.code.pool
│ ├───setup.phys.page.pool
│ │ ├───alloc.and.retain.phys.page
│ │ │ └───index.to.phys.page
│ │ └───index.to.phys.page
│ ├───setup.schedule
│ │ └───dict.new
│ │ └───grow.superuser.memory
│ │ └───alloc.and.retain.phys.page
│ │ └───index.to.phys.page
│ ├───setup.text.pool
│ │ └───dict.new
│ │ └───grow.superuser.memory
│ │ └───alloc.and.retain.phys.page
│ │ └───index.to.phys.page
│ └───setup.user.pool
│ ├───grow.superuser.memory
│ │ └───alloc.and.retain.phys.page
│ │ └───index.to.phys.page
│ └───return.to.user.pool
├───disable.timer
├───measure.dims
├───safe.to.write
├───wipe.code
├───wipe.data.ram
│ └───wipe.phys.page
├───wipe.user.page.table
├───wipe.user.registers
└───wipe.user.stack