Poor-mans async printf support for userspace
[akaros.git] / user / hello.c
1 // hello, world
2 #include <inc/lib.h>
3
4 void umain(void)
5 {
6         cprintf("goodbye, world!\n");
7         // this is just their way of generating a pagefault..., until now!
8         cprintf("i am environment %08x\n", env->env_id);
9
10         // async via shared mem
11         cprintf("about to write to shared mem.  hope it gets printed.  blimey! \n");
12         // note that when using the cprintf family, we can't currently call again,
13         // since the library functions use the same buffer.  the last used string
14         // will be the one printed when the syscall is serviced, regardless of
15         // whether the actual syscall can handle multiples in flight.
16         cprintf_async("Cross-Core call 1, coming from env %08x\n", env->env_id);
17         cprintf_async("Cross-Core call 2, coming from env %08x\n", env->env_id);
18         cprintf("Calls are sent!\n");
19         // might as well spin, just to make sure nothing gets deallocated
20         // while we're waiting to test the async call
21         while (1);
22 }