ciabatta/os/linux/entry.c

31 lines
788 B
C
Raw Normal View History

2023-07-22 14:30:04 +00:00
2023-08-03 18:36:03 +00:00
#include <syscall.h>
2023-07-23 07:28:04 +00:00
static char stack_chk_fail_msg[] =
"Stack check failed. "
"You've got a stack corruption somewhere. "
"Sorry these guys didn't tell me where\n";
void __stack_chk_fail(void) {
2023-08-03 18:36:03 +00:00
sys_write(STDERR_FILENO, stack_chk_fail_msg, sizeof stack_chk_fail_msg);
sys_exit(1);
}
extern int main(int argc, char **argv, char **envp);
2023-07-27 13:49:53 +00:00
static void _fileapi_init();
void _start(Cia_CRT_Params *params) {
cia_stack_size = params->stack_size;
cia_tls_image_size = params->tls_image_size;
cia_tls_image_base = params->tls_image_base;
// Get the envp
// char **envp = argv + (argc + 1);
// init(argc, argv, envp);
2023-07-27 13:49:53 +00:00
_fileapi_init();
int code = main(0, NULL, NULL);
// fini();
// glibc bug
2023-07-23 15:33:12 +00:00
// dl_fini();
sys_exit(code);
2023-07-22 14:30:04 +00:00
}