36 lines
668 B
C
36 lines
668 B
C
//
|
|
// Created by dongl on 25-8-11.
|
|
//
|
|
#include <libk.h>
|
|
#include <features.h>
|
|
|
|
#define START "_start"
|
|
|
|
#include <crt.h>
|
|
|
|
weak void libk_init();
|
|
weak void libk_fini();
|
|
int main( int argc, char **argv );
|
|
int rt_main( int argc, char **argv );
|
|
|
|
int libk_start_main(
|
|
int (*)(),
|
|
int,
|
|
char **,
|
|
void (*)(),
|
|
void(*)(),
|
|
void(*)()
|
|
);
|
|
|
|
void _start_c( long *p )
|
|
{
|
|
// main 入口参数
|
|
const int argc = (int) p[0];
|
|
char **argv = (void *)(p+1);
|
|
(void) argv;
|
|
|
|
p[0] >> (sizeof(long) - 1)
|
|
? libk_start_main(main, argc, argv, libk_init, libk_fini, 0)
|
|
: libk_start_main(rt_main, argc, argv, libk_init, libk_fini, 0);
|
|
}
|