Rough asynchronous syscalls
[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         char* hello = "First cross-chip async syscall success!  Shiver me timbers!\n";
12         cprintf("about to write to shared mem.  hope it gets printed.  blimey! \n");
13         // note that when using the cprintf family, we can't currently call again,
14         // since the library functions use the same buffer.  the last used string
15         // will be the one printed when the syscall is serviced, regardless of
16         // whether the actual syscall can handle multiples in flight.
17         cprintf_async(hello);
18
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 }