benchmark/kernel-only_arm/main.c

00001 // Emtpy main.c file generated by the wizard
00002 #include <cpu/irq.h>
00003 #include <kern/proc.h>
00004 #include <kern/signal.h>
00005 #include <kern/msg.h>
00006 
00007 MsgPort in_port;
00008 
00009 static void init(void)
00010 {
00011     IRQ_ENABLE;
00012     proc_init();
00013 }
00014 
00015 static cpu_stack_t proc1_stack[500];
00016 
00017 static void proc1_main(void)
00018 {
00019 
00020 }
00021 
00022 int main(void)
00023 {
00024     init();
00025     // generate code for process
00026     struct Process *p = proc_new(proc1_main, 0, sizeof(proc1_stack), proc1_stack);
00027     proc_setPri(p, 5);
00028     proc_yield();
00029     // generate code for msg
00030     Msg msg;
00031     msg_initPort(&in_port, event_createSignal(p, SIG_USER1));
00032     msg_put(&in_port, &msg);
00033     msg_peek(&in_port);
00034     Msg *msg_re = msg_get(&in_port);
00035     msg_reply(msg_re);
00036     // generate code for signals
00037     sig_signal(p, SIG_USER0);
00038     sig_wait(SIG_USER0);
00039 
00040     return 0;
00041 }
00042