tuxanci2-sdk
SDK for tuxanci2
Log | Files | Refs | README | LICENSE

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 }