iPXE
core
main.c
Go to the documentation of this file.
1
/**************************************************************************
2
iPXE - Network Bootstrap Program
3
4
Literature dealing with the network protocols:
5
ARP - RFC826
6
RARP - RFC903
7
UDP - RFC768
8
BOOTP - RFC951, RFC2132 (vendor extensions)
9
DHCP - RFC2131, RFC2132 (options)
10
TFTP - RFC1350, RFC2347 (options), RFC2348 (blocksize), RFC2349 (tsize)
11
RPC - RFC1831, RFC1832 (XDR), RFC1833 (rpcbind/portmapper)
12
13
**************************************************************************/
14
15
FILE_LICENCE
( GPL2_OR_LATER_OR_UBDL );
16
17
#include <
stddef.h
>
18
#include <
stdio.h
>
19
#include <
ipxe/init.h
>
20
#include <
ipxe/version.h
>
21
#include <
usr/autoboot.h
>
22
23
/**
24
* Main entry point
25
*
26
* @ret rc Return status code
27
*/
28
__asmcall
int
main
(
void
) {
29
int
rc
;
30
31
/* Perform one-time-only initialisation (e.g. heap) */
32
initialise
();
33
34
/* Some devices take an unreasonably long time to initialise */
35
printf
(
"%s initialising devices...\n"
,
product_short_name
);
36
startup
();
37
38
/* Attempt to boot */
39
if
( (
rc
=
ipxe
(
NULL
) ) != 0 )
40
goto
err_ipxe;
41
42
err_ipxe:
43
shutdown_exit
();
44
return
rc
;
45
}
product_short_name
const char product_short_name[]
Product short name string.
Definition:
version.c:76
rc
struct arbelprm_rc_send_wqe rc
Definition:
arbel.h:14
printf
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition:
vsprintf.c:464
FILE_LICENCE
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
init.h
autoboot.h
Automatic booting.
initialise
void initialise(void)
Initialise iPXE.
Definition:
init.c:52
ipxe
int ipxe(struct net_device *netdev)
Main iPXE flow of execution.
Definition:
autoboot.c:585
__asmcall
#define __asmcall
Declare a function with standard calling conventions.
Definition:
compiler.h:15
shutdown_exit
static void shutdown_exit(void)
Shut down system for exit back to firmware.
Definition:
init.h:84
stddef.h
version.h
Version number.
stdio.h
main
__asmcall int main(void)
Main entry point.
Definition:
main.c:28
NULL
#define NULL
NULL pointer (VOID *)
Definition:
Base.h:321
startup
void startup(void)
Start up iPXE.
Definition:
init.c:67
Generated by
1.8.15