X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Fld-acess.so_src%2Fmain.c;fp=AcessNative%2Fld-acess.so_src%2Fmain.c;h=d9bad13872d7693b34ced5614d89448e437295fc;hb=381005a446e3f8c7c56bf4764b2e697dee203840;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=602ba046995f564d8ca4b85c873cbfcafed72d42;p=tpg%2Facess2.git diff --git a/AcessNative/ld-acess.so_src/main.c b/AcessNative/ld-acess.so_src/main.c index e69de29b..d9bad138 100644 --- a/AcessNative/ld-acess.so_src/main.c +++ b/AcessNative/ld-acess.so_src/main.c @@ -0,0 +1,62 @@ +/* + */ +#include "common.h" +#include +#include +#include + +// === CODE === +int main(int argc, char *argv[], char **envp) +{ + int i; + int appArgc; + char **appArgv; + char *appPath; + int (*appMain)(int, char *[], char **); + void *base; + + for( i = 1; i < argc; i ++ ) + { + if( argv[i][0] != '-' ) break; + } + + if( i >= argc ) { + fprintf(stderr, "Usage: ld-acess [arguments ...]\n"); + return 1; + } + + appPath = argv[i]; + + appArgc = argc - i; + appArgv = &argv[i]; + + printf("Exectutable Path: '%s'\n", appPath); + printf("Executable argc = %i\n", appArgc); + + base = Binary_Load(appPath, (uintptr_t*)&appMain); + printf("base = %p\n", base); + if( !base ) return 127; + + return appMain(appArgc, appArgv, envp); +} + +void Warning(const char *Format, ...) +{ + va_list args; + printf("Warning: "); + va_start(args, Format); + vprintf(Format, args); + va_end(args); + printf("\n"); +} + +void Notice(const char *Format, ...) +{ + va_list args; + printf("Notice: "); + va_start(args, Format); + vprintf(Format, args); + va_end(args); + printf("\n"); +} +