/* ************************************************************************** * * Boot-ROM-Code to load an operating system across a TCP/IP network. * * Module: pxe/pxegeneral.h * Purpose: Definitions for general PXE API functions * 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: pxegeneral.h,v 1.4 2003/01/25 23:29:40 gkminix Exp $ */ #ifndef _PXE_PXEGENERAL_H #define _PXE_PXEGENERAL_H /* ************************************************************************** * * This file contains general PXE API functions as per Intels PXE * specification version 1.0. * ************************************************************************** * * General PXE API opcodes: */ #define GEN_UNLOAD_STACK 0x0070 #define GEN_GET_BINL_INFO 0x0071 #define GEN_RESTART_TFTP 0x0073 #define GEN_START_BASE 0x0075 #define GEN_STOP_BASE 0x0076 #define GEN_MINNUM 0x0070 #define GEN_MAXNUM 0x0076 /* ************************************************************************** * * Definition of structure for GEN_UNLOAD_STACK function: */ #ifndef _USE_ASSEMBLER typedef struct s_gen_unload_stack { unsigned int status; /* Out: function status */ unsigned char resvd[10]; } t_gen_unload_stack; #else o_gus_status equ $0000 ! Out: status unload_stack_size equ $000C ! size of function structure #endif /* _USE_ASSEMBLER */ /* ************************************************************************** * * Definition of structure for GEN_GET_BINL_INFO function: */ #ifndef _USE_ASSEMBLER typedef struct s_gen_get_binl_info { unsigned int status; /* Out: function status */ unsigned int packet_type; /* In: type of buffer requested */ unsigned int buffer_size; /* In/Out: size of buffer in bytes */ unsigned int buffer_offset; /* In/Out: offset to buffer */ unsigned int buffer_segment; /* In/Out: segment of buffer */ unsigned int buffer_limit; /* Out: max size of buffer */ } t_gen_get_binl_info; #else o_ggbi_status equ $0000 ! Out: status o_ggbi_packet_type equ $0002 ! In: type of buffer requested o_ggbi_buffer_size equ $0004 ! In/Out: size of buffer in bytes o_ggbi_buffer_offset equ $0006 ! In/Out: offset to buffer o_ggbi_buffer_segment equ $0008 ! In/Out: segment of buffer o_ggbi_buffer_limit equ $000A ! Out: max size of buffer get_binl_info_size equ $000C ! size of function structure #endif /* _USE_ASSEMBLER */ /* Packet types */ #define GEN_PACKET_DHCP_DISCOVER 1 #define GEN_PACKET_DHCP_ACK 2 #define GEN_PACKET_BINL_REPLY 3 /* ************************************************************************** * * Definition of structure for GEN_RESTART_TFTP function: * * All definitions for the GEN_RESTART_TFTP function are identical to * those for the TFTP_READ_FILE function, so they are not repeated here. */ #include /* ************************************************************************** * * Definition of structure for GEN_START_BASE function: */ #ifndef _USE_ASSEMBLER typedef struct s_gen_start_base { unsigned int status; /* Out: function status */ } t_gen_start_base; #else o_gsb_status equ $0000 ! Out: status start_base_size equ $0002 ! size of function structure #endif /* _USE_ASSEMBLER */ /* ************************************************************************** * * Definition of structure for GEN_STOP_BASE function: */ #ifndef _USE_ASSEMBLER typedef struct s_gen_stop_base { unsigned int status; /* Out: function status */ } t_gen_stop_base; #else o_gxb_status equ $0000 ! Out: status stop_base_size equ $0002 ! size of function structure #endif /* _USE_ASSEMBLER */ #endif /* _PXE_PXEGENERAL_H */