The Dauug House Wright State University logo
Dauug|36 minicomputer documentation

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.

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

Marc W. Abel
Computer Science and Engineering
College of Engineering and Computer Science
marc.abel@wright.edu
Without secure hardware, there is no secure software.
937-775-3016