Merge branch 'master' into proc-work
[akaros.git] / user / parlib / src / entry_sparc.S
1 #include <arch/mmu.h>
2 #include <ros/memlayout.h>
3
4 .data
5
6
7 // Define the global symbols 'envs', 'pages', 'vpt', and 'vpd'
8 // so that they can be used in C as if they were ordinary global arrays.
9         .globl procinfo
10         .set procinfo, UINFO
11         .globl procdata
12         .set procdata, USYSCALL
13         .globl pages
14         .set pages, UPAGES
15         .globl vpt
16         .set vpt, UVPT
17         .globl vpd
18         .set vpd, (UVPT+(UVPT>>12)*4)
19
20
21 // Entrypoint - this is where the kernel (or our parent environment)
22 // starts us running when we are initially loaded into a new environment.
23 .text
24 .globl _start
25 _start:
26         // See if we were started with arguments on the stack
27         tst     %o0
28         bne     args_exist
29          nop
30
31         // If not, push dummy argc/argv arguments.
32         // This happens when we are loaded by the kernel,
33         // because the kernel does not know about passing arguments.
34         mov     0,%o0
35         mov     0,%o1
36
37 args_exist:
38         call    parlibmain
39          nop
40
41 1:      ba      1b
42          nop
43