crt0.c (452B)
1 #include <stdint.h>
2 #include <stddef.h>
3 #include <tuxanci2/abi.h>
4 #include <tuxanci2/syscall.h>
5
6 extern int main(void);
7
8 static inline void ta_ready(void (*stub)(uint32_t)) {
9 ta_syscall(TA_SYS_READY, (uint32_t)(size_t)stub, 0, 0, 0, 0, 0);
10 }
11
12 static inline void ta_return(uint32_t value) {
13 ta_syscall(TA_SYS_RETURN, value, 0, 0, 0, 0, 0);
14
15 while (1) {}
16 }
17
18 __attribute__((section(".text.start"))) void _start(void) {
19 main();
20 ta_ready(ta_return);
21 }