diff options
Diffstat (limited to 'payloads/libpayload/i386/main.c')
-rw-r--r-- | payloads/libpayload/i386/main.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/payloads/libpayload/i386/main.c b/payloads/libpayload/i386/main.c index 25e4de46d7..48d6ef5495 100644 --- a/payloads/libpayload/i386/main.c +++ b/payloads/libpayload/i386/main.c @@ -29,13 +29,21 @@ #include <libpayload.h> +unsigned long loader_eax; /**< The value of EAX passed from the loader */ +unsigned long loader_ebx; /**< The value of EBX passed from the loader */ + +unsigned int main_argc; /**< The argc value to pass to main() */ + +/** The argv value to pass to main() */ +char *main_argv[MAX_ARGC_COUNT]; + /** * This is our C entry function - set up the system * and jump into the payload entry point. */ void start_main(void) { - extern int main(void); + extern int main(int argc, char **argv); /* Set up the consoles. */ console_init(); @@ -52,7 +60,8 @@ void start_main(void) * Go to the entry point. * In the future we may care about the return value. */ - (void) main(); + + (void) main(main_argc, (main_argc != 0) ? main_argv : NULL); /* * Returning here will go to the _leave function to return |