2a4d6680b8d6b33216557aff6dee84dd9398ae58
[tpg/acess2.git] / Usermode / Applications / init_src / main.c
1 /*
2  * Acess2 System Init Task
3  */
4 #include <acess/sys.h>
5
6 // === CONSTANTS ===
7 #define NULL    ((void*)0)
8 #define DEFAULT_TERMINAL        "/Devices/VTerm/0"
9 #define DEFAULT_SHELL   "/Acess/CLIShell"
10
11 // === CODE ===
12 /**
13  * \fn int main(int argc, char *argv[])
14  */
15 int main(int argc, char *argv[])
16 {
17          int    tid;
18         open(DEFAULT_TERMINAL, OPENFLAG_READ);  // Stdin
19         open(DEFAULT_TERMINAL, OPENFLAG_WRITE); // Stdout
20         open(DEFAULT_TERMINAL, OPENFLAG_WRITE); // Stderr
21         
22         write(1, 13, "Hello, World!");
23         
24         tid = clone(CLONE_VM, 0);
25         if(tid == 0)
26         {
27                 execve(DEFAULT_SHELL, NULL, NULL);
28                 for(;;) __asm__ __volatile__("hlt");
29         }
30         
31         for(;;) sleep();
32         
33         return 42;
34 }

UCC git Repository :: git.ucc.asn.au