/* ************************************************************************** * * Boot-ROM-Code to load an operating system across a TCP/IP network. * * Module: pxe/common.h * Purpose: General definitions for PXE API * Entries: None * ************************************************************************** * * Copyright (C) 1998-2003 Gero Kuhlmann * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Id: common.h,v 1.5 2003/01/25 23:29:40 gkminix Exp $ */ #ifndef _PXE_COMMON_H #define _PXE_COMMON_H /* ************************************************************************** * * This file contains the Preboot API common definitions as * per Intels PXE specification version 1.0. * ************************************************************************** * * Result codes returned in AX by a PXENV API service: */ #define PXENV_EXIT_SUCCESS 0x0000 #define PXENV_EXIT_FAILURE 0x0001 /* ************************************************************************** * * CPU types: */ #define PXENV_CPU_X86 0 #define PXENV_CPU_ALPHA 1 #define PXENV_CPU_PPC 2 /* ************************************************************************** * * Bus types: */ #define PXENV_BUS_ISA 0 #define PXENV_BUS_EISA 1 #define PXENV_BUS_MCA 2 #define PXENV_BUS_PCI 3 #define PXENV_BUS_VESA 4 #define PXENV_BUS_PCMCIA 5 /* ************************************************************************** * * Status codes returned in the status word of the PXENV API parameter * structure: */ /* Generic API errors that are reported by the loader */ #define PXENV_STATUS_SUCCESS 0x00 #define PXENV_STATUS_FAILURE 0x01 /* general failure */ #define PXENV_STATUS_BAD_FUNC 0x02 /* invalid function number */ #define PXENV_STATUS_UNSUPPORTED 0x03 /* function not yet supported */ #define PXENV_STATUS_KEEP_UNDI 0x04 /* keep UNDI in memory */ #define PXENV_STATUS_KEEP_ALL 0x05 /* keep everything in memory */ /* ARP/UDP errors (0x10 to 0x1F) */ #define PXENV_STATUS_ARP_CANCELED 0x10 /* ARP canceled by keystroke */ #define PXENV_STATUS_ARP_TIMEOUT 0x11 /* ARP timeout */ #define PXENV_STATUS_UDP_CLOSED 0x18 /* UDP closed */ #define PXENV_STATUS_UDP_OPEN 0x19 /* UDP already open */ #define PXENV_STATUS_TFTP_CLOSED 0x1A /* TFTP closed */ #define PXENV_STATUS_TFTP_OPEN 0x1B /* TFTP already opened */ /* BIOS/system errors (0x20 to 0x2F) */ #define PXENV_STATUS_MCOPY_PROBLEM 0x20 /* unable to copy into memory */ /* TFP errors (0x30 to 0x3F) */ #define PXENV_STATUS_TFTP_CANNOT_ARP 0x30 /* TFTP ARP problem */ #define PXENV_STATUS_TFTP_OPEN_CANCELED 0x31 /* TFTP open canceled by key */ #define PXENV_STATUS_TFTP_OPEN_TIMEOUT 0x32 /* timeout during TFTP open */ #define PXENV_STATUS_TFTP_UNKNOWN_OP 0x33 /* unknown TFTP opcode */ #define PXENV_STATUS_TFTP_READ_CANCELED 0x34 /* TFTP read canceled by key */ #define PXENV_STATUS_TFTP_READ_TIMEOUT 0x35 /* timeout during TFTP read */ #define PXENV_STATUS_TFTP_ERROR_OP 0x36 /* bad TFTP opcode */ #define PXENV_STATUS_TFTP_CANNOT_OPEN 0x38 /* error during TFTP open */ #define PXENV_STATUS_TFTP_CANNOT_READ 0x39 /* error during TFTP read */ #define PXENV_STATUS_TFTP_TOO_MANY 0x3A /* too many packages */ #define PXENV_STATUS_TFTP_INVALID_FILE 0x3B /* file not found */ #define PXENV_STATUS_TFTP_ACCESS 0x3C /* access violation */ #define PXENV_STATUS_TFTP_NO_MCAST 0x3D /* no multicast address */ /* BOOTP errors (0x40 to 0x4F) */ #define PXENV_STATUS_BOOTP_CANCELED 0x40 /* BOOTP canceled by key */ #define PXENV_STATUS_BOOTP_TIMEOUT 0x41 /* timeout during BOOTP */ #define PXENV_STATUS_BOOTP_NO_FILE 0x42 /* missing bootfile name */ /* DHCP errors (0x50 to 0x5F) */ #define PXENV_STATUS_DHCP_CANCELED 0x50 /* DHCP canceled by key */ #define PXENV_STATUS_DHCP_TIMEOUT 0x51 /* timeout during DHCP */ #define PXENV_STATUS_DHCP_NO_IP_ADDR 0x52 /* missing IP address */ #define PXENV_STATUS_DHCP_NO_FILE 0x53 /* missing bootfile name */ /* Driver errors (0x60 to 0x6F) */ #define PXENV_STATUS_UNDI_INVFUNC 0x60 /* invalid UNDI function */ #define PXENV_STATUS_UNDI_MEDIATEST 0x61 /* media test failed */ #define PXENV_STATUS_UNDI_MCAST 0x62 /* cannot init for multicast */ #define PXENV_STATUS_UNDI_NIC_INIT 0x63 /* cannot init NIC */ #define PXENV_STATUS_UNDI_PHY_INIT 0x64 /* cannot init hardware */ #define PXENV_STATUS_UNDI_CONFIG_DATA 0x65 /* cannot read config data */ #define PXENV_STATUS_UNDI_INIT_DATA 0x66 /* cannot read init data */ #define PXENV_STATUS_UNDI_INV_HWADDR 0x67 /* invalid hardware address */ #define PXENV_STATUS_UNDI_EEPROM 0x68 /* invalid EEPROM checksum */ #define PXENV_STATUS_UNDI_RESOURCES 0x69 /* out of resources */ #define PXENV_STATUS_UNDI_ALREADY_INIT 0x6A /* UNDI already initialized */ #define PXENV_STATUS_UNDI_NOT_INIT 0x6B /* UNDI not initialized yet */ #define PXENV_STATUS_UNDI_ALREADY_OPEN 0x6C /* UNDI already opened */ #define PXENV_STATUS_UNDI_NOT_OPEN 0x6D /* UNDI not opened yet */ /* Bootstrap (.1) errors (0x70 to 0x7F) */ /* Environment (.2) errors (0x80 to 0x8F) */ /* MTFTP errors (0x90 to 0x9F) */ #define PXENV_STATUS_MTFTP_OPEN_CANCEL 0x91 /* MTFTP open canceled by key */ #define PXENV_STATUS_MTFTP_OPEN_TIMEOUT 0x92 /* timeout during MTFTP open */ #define PXENV_STATUS_MTFTP_UNKNOWN_OP 0x93 /* unknown TFTP opcode */ #define PXENV_STATUS_MTFTP_READ_CANCEL 0x94 /* MTFTP read canceled by key */ #define PXENV_STATUS_MTFTP_READ_TIMEOUT 0x95 /* timeout during MTFTP read */ #define PXENV_STATUS_MTFTP_ERROR_OP 0x96 /* bad TFTP opcode */ #define PXENV_STATUS_MTFTP_CANNOT_OPEN 0x98 /* error during MTFTP open */ #define PXENV_STATUS_MTFTP_CANNOT_READ 0x99 /* error during MTFTP read */ #define PXENV_STATUS_MTFTP_TOO_MANY 0x9A /* too many packages */ #define PXENV_STATUS_MTFTP_PACK_SIZE 0x9B /* invalid package size */ /* Misc. errors (0xA0 to 0xAF) */ #define PXENV_STATUS_BINL_CANCELED 0xA0 /* BINL canceled by key */ #define PXENV_STATUS_BINL_NO_SERVER 0xA1 /* no BINL server found */ #define PXENV_STATUS_PMODE 0xA2 /* not available in prot mode */ #define PXENV_STATUS_RMODE 0xA3 /* not available in real mode */ /* BUSD errors (0xB0 to 0xBF) */ #define PXENV_STATUS_BUSD_BUS_ENABLE 0xB0 /* BUSD services not enabled */ #define PXENV_STATUS_BUSD_DEV_ENABLE 0xB1 /* BUSD device not enabled */ /* Loader errors (0xC0 to 0xCF) */ #define PXENV_STATUS_LOADER_NO_FBM 0xC0 /* no free base memory */ #define PXENV_STATUS_LOADER_NO_BC 0xC1 /* no base code rom ID */ #define PXENV_STATUS_LOADER_BAD_BC_ID 0xC2 /* bad base code rom ID */ #define PXENV_STATUS_LOADER_BC_IMG 0xC3 /* bad base code image */ #define PXENV_STATUS_LOADER_NO_UNDI 0xC4 /* no UNDI rom ID */ #define PXENV_STATUS_LOADER_BAD_UNDI 0xC5 /* bad UNDI rom ID */ #define PXENV_STATUS_LOADER_UNDI_IMG 0xC6 /* bad UNDI runtime image */ /* Reserved errors (0xD0 to 0xFF) */ #define PXENV_STATUS_IMAGE_INVALID 0xD0 /* invalid boot image */ #define PXENV_STATUS_STOP_BASE 0xD1 /* error stopping base code */ #define PXENV_STATUS_UNLOAD_BASE 0xD2 /* error unloading base code */ #define PXENV_STATUS_STOP_UNDI 0xD3 /* error stopping UNDI */ #define PXENV_STATUS_CLEANUP_UNDI 0xD4 /* error cleaning up UNDI */ #endif /* _PXE_COMMON_H */