aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/i386/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/i386/main.c')
-rw-r--r--payloads/libpayload/i386/main.c13
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