amt_wanted_min added to resource requests
[akaros.git] / user / apps / roslib / mhello.c
1 #include <lib.h>
2 #include <ros/mman.h>
3 #include <ros/resource.h>
4 #include <syswrapper.h>
5 #include <stdio.h>
6
7 // ghetto udelay, put in a lib somewhere and export the tsc freq
8 #include <arch/arch.h>
9 void udelay(uint64_t usec, uint64_t tsc_freq)
10 {
11         uint64_t start, end, now;
12
13         start = read_tsc();
14     end = start + (tsc_freq * usec) / 1000000;
15         if (end == 0) cprintf("This is terribly wrong \n");
16         do {
17         cpu_relax();
18         now = read_tsc();
19         } while (now < end || (now > start && end < start));
20         return;
21 }
22
23 int main(int argc, char** argv)
24 {
25         uint32_t vcoreid;
26         error_t retval;
27
28         prepare_for_multi_mode();
29
30         if ((vcoreid = newcore())) {
31                 cprintf("Should never see me! (from vcore %d)\n", vcoreid);
32         } else { // core 0
33                 cprintf("Hello from vcore 0\n");
34                 cprintf("Multi-Goodbye, world, from PID: %d!\n", sys_getpid());
35                 retval = sys_resource_req(RES_CORES, 7, 1, 0);
36         }
37         cprintf("Vcore %d Done!\n", vcoreid);
38         while (1);
39         return 0;
40 }
41
42 void hart_entry(void)
43 {
44         uint32_t vcoreid;
45         vcoreid = newcore();
46         cprintf("Hello from hart_entry in vcore %d\n", vcoreid);
47 }