etherboot.h revision 677833bc953b6cb418c701facbdcf4aa18d6c44e
0N/A#ifndef ETHERBOOT_H
3261N/A#define ETHERBOOT_H
0N/A#include "etherboot-asm.h"
0N/A#ifndef BOOT_FIRST
0N/A#ifndef BOOT_SECOND
0N/A#ifndef BOOT_THIRD
2362N/A#define DEFAULT_BOOT_ORDER ( \
0N/A#ifdef BOOT_INDEX
0N/A#define DEFAULT_BOOT_INDEX 0
0N/A#if !defined(TAGGED_IMAGE) && !defined(AOUT_IMAGE) && !defined(ELF_IMAGE) && !defined(ELF64_IMAGE) && !defined(COFF_IMAGE) && !defined(RAW_IMAGE) && !defined(PXE_IMAGE)
0N/A#define __STRINGIFY(x) #x
0N/A#ifndef DEFAULT_KERNELPATH
0N/A#ifdef FREEBSD_PXEEMU
0N/A#ifndef PXENFSROOTPATH
0N/A * etherboot.h). At least one of the CONSOLE_xxx has to be set, and
0N/A#ifdef CONSOLE_CRT
0N/A#define CONSOLE_FIRMWARE
0N/A#ifdef CONSOLE_DUAL
0N/A#define CONSOLE_FIRMWARE
0N/A#define CONSOLE_SERIAL
0N/A#define CONSOLE_DUAL
0N/A#define CONSOLE_FIRMWARE
0N/A#if !defined(DOWNLOAD_PROTO_TFTP) && !defined(DOWNLOAD_PROTO_NFS) && !defined(DOWNLOAD_PROTO_SLAM) && !defined(DOWNLOAD_PROTO_TFTM) && !defined(DOWNLOAD_PROTO_DISK) && !defined(DOWNLOAD_PROTO_HTTP) && !defined(DOWNLOAD_PROTO_FSP)
0N/A#ifndef MAX_TFTP_RETRIES
0N/A#ifndef MAX_BOOTP_RETRIES
0N/A#ifndef MAX_ARP_RETRIES
0N/A#ifndef MAX_RPC_RETRIES
0N/A#ifndef VALID_LINK_TIMEOUT
0N/A#ifndef BOOTP_TIMEOUT
#ifndef NULL
#define NULL ((void *)0)
#include "if_ether.h"
#ifdef DNS_RESOLVER
#ifdef PXE_EXPORT
#define IGMP_SERVER 0
#include "in.h"
/* Helper macros used to identify when DHCP options are valid/invalid in/outside of encapsulation */
#ifdef PXE_DHCP_STRICT
#define PXE_ENCAP_OPT
#define PXE_NONENCAP_OPT
#ifdef ALLOW_ONLY_ENCAPSULATED
#include "if_arp.h"
#include "ip.h"
#include "udp.h"
#include "tcp.h"
#include "bootp.h"
#include "tftp.h"
#include "igmp.h"
#include "nfs.h"
struct arptable_t {
} PACKED;
struct igmptable_t {
unsigned long time;
} PACKED;
struct rom_info {
unsigned short rom_segment;
unsigned short rom_length;
struct ebinfo {
/* main.c */
struct Elf_Bhdr;
extern void console_init(void);
extern char as_main_program;
/* nic.c */
extern void rx_qdrain P((void));
typedef int (*reply_t)(int ival, void *ptr, unsigned short ptype, struct iphdr *ip, struct udphdr *udp, struct tcphdr *tcp);
extern int decode_rfc1533 P((unsigned char *, unsigned int, unsigned int, int));
#ifndef DOWNLOAD_PROTO_TFTP
extern void cleanup P((void));
/* nfs.c */
extern void rpc_init(void);
extern void nfs_umountall P((int));
/* proto_slam.c */
extern int url_slam P((const char *name, int (*fnc)(unsigned char *, unsigned int, unsigned int, int)));
/* proto_tftm.c */
extern int url_tftm P((const char *name, int (*fnc)(unsigned char *, unsigned int, unsigned int, int)));
/* proto_fsp.c */
extern int url_fsp P((const char *name, int (*fnc)(unsigned char *, unsigned int, unsigned int, int)));
/* config.c */
extern void print_config(void);
/* isa_probe.c and pci_probe.c */
struct dev;
extern void isa_enumerate(void);
extern void pci_enumerate(void);
/* heap.c */
extern void init_heap(void);
/* osloader.c */
extern int load_block P((unsigned char *, unsigned int, unsigned int, int ));
/* misc.c */
extern void twiddle P((void));
extern void poll_interruptions P((void));
extern int strcasecmp P((const char *a, const char *b));
extern char *substr P((const char *a, const char *b));
extern int printf P((const char *, ...));
extern int sprintf P((char *, const char *, ...));
#ifdef PCBIOS
extern void gateA20_set P((void));
#define gateA20_unset()
#define gateA20_set()
#define gateA20_unset()
extern void putchar P((int));
extern int getchar P((void));
extern int iskey P((void));
extern int console_getc P((void));
extern void console_putc P((int));
extern int console_ischar P((void));
extern int getshift P((void));
extern int int15 P((int));
#ifdef POWERSAVE
extern void cpu_nap P((void));
/* basemem.c */
extern void allot_real_mode_stack ( void );
extern void forget_real_mode_stack ( void );
extern void forget_prefix_base_memory ( void );
struct e820entry {
} PACKED;
struct meminfo {
} PACKED;
extern void get_memsizes(void);
#ifndef NORELOCATE
extern void relocate(void);
#define relocate() do {} while(0)
extern void disk_init P((void));
struct os_entry_regs {
struct regs {
extern void xend32 P((void));
extern unsigned long currticks P((void));
extern void _stack;
/* serial.c */
extern int serial_getc P((void));
extern void serial_putc P((int));
extern int serial_ischar P((void));
extern int serial_init P((void));
extern void serial_fini P((void));
/* floppy.c */
/* pxe_callbacks.c */
/* main.c */
extern int url_port;
/* nic.c */
extern char *hostname;
extern int hostnamelen;
extern unsigned char *addparam;
extern int addparamlen;
#ifdef VBOX
extern unsigned char *end_of_rfc1533;
#ifdef IMAGE_FREEBSD
extern int freebsd_howto;
/* osloader.c */