iPXE
pxe_loader.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2007 Michael Brown <mbrown@fensystems.co.uk>.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 * 02110-1301, USA.
18 *
19 * You can also choose to distribute this program under the terms of
20 * the Unmodified Binary Distribution Licence (as given in the file
21 * COPYING.UBDL), provided that you have satisfied its requirements.
22 */
23
24FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
25
26#include <ipxe/init.h>
27#include "pxe.h"
28#include "pxe_call.h"
29
30/** @file
31 *
32 * PXE UNDI loader
33 *
34 */
35
36/* PXENV_UNDI_LOADER
37 *
38 */
40
41 /* Perform one-time initialisation (e.g. heap) */
42 initialise();
43
44 DBG ( "[PXENV_UNDI_LOADER to CS %04x DS %04x]",
45 undi_loader->UNDI_CS, undi_loader->UNDI_DS );
46
47 /* Fill in UNDI loader structure */
48 undi_loader->PXEptr.segment = rm_cs;
49 undi_loader->PXEptr.offset = __from_text16 ( &ppxe );
50 undi_loader->PXENVptr.segment = rm_cs;
51 undi_loader->PXENVptr.offset = __from_text16 ( &pxenv );
52
54 return PXENV_EXIT_SUCCESS;
55}
#define DBG(...)
Print a debugging message.
Definition compiler.h:498
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define PXENV_EXIT_SUCCESS
No error occurred.
Definition pxe_types.h:45
UINT16_t PXENV_EXIT_t
A PXE exit code.
Definition pxe_types.h:44
#define PXENV_STATUS_SUCCESS
Definition pxe_error.h:19
void initialise(void)
Initialise iPXE.
Definition init.c:53
#define __from_text16(pointer)
Definition libkir.h:23
#define rm_cs
Definition libkir.h:38
PXE API entry point.
#define ppxe
Definition pxe_call.h:28
#define pxenv
Definition pxe_call.h:32
Parameter block for undi_loader()
Definition pxe_api.h:1729
#define undi_loader
Definition undiload.c:53