Added stubs for additional newlib system calls
[akaros.git] / user / parlib / src / sparc / entry.S
1 #include <arch/mmu.h>
2 #include <arch/arch.h>
3 #include <ros/memlayout.h>
4
5 .data
6
7
8 // Define the global symbols 'envs', 'pages', 'vpt', and 'vpd'
9 // so that they can be used in C as if they were ordinary global arrays.
10         .globl procinfo
11         .set procinfo, UINFO
12         .globl procdata
13         .set procdata, UDATA
14         .globl pages
15         .set pages, UPAGES
16         .globl vpt
17         .set vpt, UVPT
18         .globl vpd
19         .set vpd, (UVPT+(UVPT>>12)*4)
20
21 .align 4
22 .globl stack_ptr_array
23 stack_ptr_array:
24    .word 0
25
26
27 // Entrypoint - this is where the kernel (or our parent environment)
28 // starts us running when we are initially loaded into a new environment.
29 .text
30 .globl _start
31 _start:
32         tst     %g6
33         bne     notcore0
34          nop
35
36         call    parlibmain
37          nop
38
39         unimp
40
41 notcore0:
42
43         // Get a stack, set %sp
44
45         set     stack_ptr_array, %l0
46         ld      [%l0], %l0
47         sll     %g6, 2, %l1
48         ld      [%l0+%l1], %l1
49         sub     %l1, 64, %sp
50
51         call    hart_entry
52          nop
53
54         call    hart_yield
55          nop
56
57         unimp