aboutsummaryrefslogtreecommitdiff
path: root/src/apps/init
diff options
context:
space:
mode:
Diffstat (limited to 'src/apps/init')
-rw-r--r--src/apps/init/main.c58
1 files changed, 36 insertions, 22 deletions
diff --git a/src/apps/init/main.c b/src/apps/init/main.c
index 368322c..b351615 100644
--- a/src/apps/init/main.c
+++ b/src/apps/init/main.c
@@ -9,31 +9,45 @@
int main(int argc, char **argv) {
dbg_print("Hello, world! from user process.\n");
- fd_t f = open("io:/", FM_READDIR);
- dbg_printf("openned /: %d\n", f);
- dirent_t x;
- while (readdir(f, &x)) {
- dbg_printf("- '%s' %p %d\n", x.name, x.st.type, x.st.size);
- if (x.st.type == FT_REGULAR) {
- char buf[256];
- strcpy(buf, "io:/");
- strcpy(buf+4, x.name);
- dbg_printf("trying to open %s...\n", buf);
- fd_t ff = open(buf, FM_READ);
- if (ff != 0) {
- dbg_printf("ok, open as %d\n", ff);
- char* cont = malloc(x.st.size + 1);
- dbg_print_region_info();
- read(ff, 0, x.st.size, cont);
- cont[x.st.size] = 0;
- dbg_printf("> '%s'\n", cont);
- close(ff);
- } else {
- dbg_printf("Could not open '%s'\n", buf);
+ {
+ fd_t f = open("io:/", FM_READDIR);
+ dbg_printf("openned io:/ as %d\n", f);
+ dirent_t x;
+ size_t ent_no = 0;
+ while (readdir(f, ent_no++, &x)) {
+ dbg_printf("- '%s' %p %d\n", x.name, x.st.type, x.st.size);
+ if (x.st.type == FT_REGULAR) {
+ char buf[256];
+ strcpy(buf, "io:/");
+ strcpy(buf+4, x.name);
+ dbg_printf("trying to open %s...\n", buf);
+ fd_t ff = open(buf, FM_READ);
+ if (ff != 0) {
+ dbg_printf("ok, open as %d\n", ff);
+ char* cont = malloc(x.st.size + 1);
+ dbg_print_region_info();
+ read(ff, 0, x.st.size, cont);
+ cont[x.st.size] = 0;
+ dbg_printf("> '%s'\n", cont);
+ close(ff);
+ } else {
+ dbg_printf("Could not open '%s'\n", buf);
+ }
}
}
+ close(f);
+ }
+
+ {
+ fd_t f = open("root:/", FM_READDIR);
+ dbg_printf("openned root:/ as %d\n", f);
+ dirent_t x;
+ size_t ent_no = 0;
+ while (readdir(f, ent_no++, &x)) {
+ dbg_printf("- '%s' %p %d\n", x.name, x.st.type, x.st.size);
+ }
+ close(f);
}
- close(f);
return 0;
}