Async call tweaks
[akaros.git] / user / null.c
1 // null app
2 #include <inc/lib.h>
3 #include <inc/types.h>
4 #include <inc/syscall.h>
5 #include <inc/x86.h>
6 #include <inc/measure.h>
7
8 #define NUM_ITERATIONS  100000
9 uint64_t times[NUM_ITERATIONS];
10
11 uint64_t total(uint64_t (COUNT(length) array)[], int length)
12 {
13         uint64_t sum = 0;
14         for(int i=0; i<length; i++) {
15                 sum+=array[i];
16         }
17         return sum;
18         //return (length > 0) ? sum/((uint64_t)length) : 0;
19 }
20
21 void umain(void)
22 {
23         measure_function(sys_null(), NUM_ITERATIONS, "sys_null");
24         measure_function(asm volatile("nop;"), NUM_ITERATIONS, "nop");
25         measure_function(cprintf("hello\n"), 2, "printf");
26
27         // Spin to make sure we don't have any resources deallocated before done
28         while(1);
29 }