[srv.init] Load initial programs in srv.init

Add a simple ELF loader to srv.init to load and start any module_program
parameters passed from the bootloader. Also creates stacks for newly
created threads.

Also update thread creation in testapp to create stacks.
This commit is contained in:
Justin C. Miller
2021-12-26 15:42:12 -08:00
parent 300bf9c2c5
commit 25522a8450
6 changed files with 183 additions and 22 deletions

View File

@@ -1,10 +1,13 @@
# vim: ft=python
module("srv.init",
init = module("srv.init",
targets = [ "user" ],
deps = [ "libc" ],
deps = [ "libc", "elf" ],
sources = [
"loader.cpp",
"main.cpp",
"modules.cpp",
"start.s",
])
init.variables['ldflags'] = ["${ldflags}", "-section-start=.rodata=0x800000"]