summaryrefslogtreecommitdiffstats
path: root/qemu/roms/ipxe/src/core/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/ipxe/src/core/main.c')
-rw-r--r--qemu/roms/ipxe/src/core/main.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/qemu/roms/ipxe/src/core/main.c b/qemu/roms/ipxe/src/core/main.c
new file mode 100644
index 000000000..db09e4c39
--- /dev/null
+++ b/qemu/roms/ipxe/src/core/main.c
@@ -0,0 +1,43 @@
+/**************************************************************************
+iPXE - Network Bootstrap Program
+
+Literature dealing with the network protocols:
+ ARP - RFC826
+ RARP - RFC903
+ UDP - RFC768
+ BOOTP - RFC951, RFC2132 (vendor extensions)
+ DHCP - RFC2131, RFC2132 (options)
+ TFTP - RFC1350, RFC2347 (options), RFC2348 (blocksize), RFC2349 (tsize)
+ RPC - RFC1831, RFC1832 (XDR), RFC1833 (rpcbind/portmapper)
+
+**************************************************************************/
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
+#include <stddef.h>
+#include <stdio.h>
+#include <ipxe/init.h>
+#include <ipxe/version.h>
+#include <usr/autoboot.h>
+
+/**
+ * Main entry point
+ *
+ * @ret rc Return status code
+ */
+__asmcall int main ( void ) {
+
+ /* Perform one-time-only initialisation (e.g. heap) */
+ initialise();
+
+ /* Some devices take an unreasonably long time to initialise */
+ printf ( "%s initialising devices...", product_short_name );
+ startup();
+ printf ( "ok\n" );
+
+ ipxe ( NULL );
+
+ shutdown_exit();
+
+ return 0;
+}